自定定义的中间件,无缘无故执行了多次~~求解
发布于 10 年前 作者 seasidesun 3644 次浏览 最后一次编辑是 8 年前

在routes(app);的前面加了一个自己定义的中间件

app.use(auth_user); routes(app);

在执行过程中,auth_user执行了4次,实在搞不懂 感觉像返回next( )的原因,但是是在找不到解决方法

这是代码结构 auth_user = function (req, res, next) { … return next( ); } 估计应该是返回next的原因,但也不至于4次啊

2 回复

是不是放在静态文件中间件前面了, 所以导致请求静态文件的时候也在执行这个中间件… 或者看下每次执行时的 req.originalUrl 是啥,这样可以判断是不是同一次请求多次执行

果然是请求静态文件的时候执行了多次~~~ 我把这个中间件放在routes(app);的前面, 之前我把静态文件和错误日志中间件放在一起了,而错误日志必须放在routes(app)的后面,所以连带着静态文件写也放在在routes(app);后面了

一怒之下把静态文件这个写在了最前面~~~也不分生产和开发模式了

对了,请教一个问题,是不是请求静态文件的时候所有中间件都会匹配一次,所以导致了我自己写的执行了多次?

回到顶部