根据你写的代码请先查看官网文档描述:app.use([path,] function [, function...])//path defaults to “/”, middleware mounted without a path will be executed for every request to the app.//意思就是请求路径为/或为空时,所有的请求都会先执行该路由再来分析你的代码:如果判断用户名不存在或为空,则重定向,即发送一个新的请求,那么请求又会先经过app.use('/',callback),然后又判断用户名不存在,又重新请求....于是就出现了无限重定向最后的解决:可以将app.use替换为app.get,或者在不满足条件时,直接res.render('login') ,即直接渲染登录界面而不是跳转