You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NextJS自定义Express服务器中中间件未被调用问题求助

解决Express日志中间件未被调用的问题

嘿,我一眼就瞅出问题所在啦——你的日志中间件漏掉了关键的next()调用!

在Express的规则里,中间件要么直接给客户端返回响应,要么必须调用next()把请求传递给后续的中间件或路由处理函数。你当前的代码只打印了日志,但没让请求继续往下走,这会导致请求卡在这个中间件里,不仅后续路由没法处理请求,你甚至可能误以为中间件没被触发(实际上它已经被调用了,只是请求没继续流转而已)。

修复步骤

修改你的日志中间件,补上next()调用就行:

server.use(function(req, res, next) { 
  console.log("LOGGED"); 
  next(); // 必须添加这一行,让请求继续向下传递
}); 

额外优化建议

为了让日志更实用,你可以加上请求方法、路径和时间戳,方便后续调试:

server.use(function(req, res, next) { 
  console.log(`${new Date().toISOString()} - ${req.method} ${req.path} - LOGGED`);
  next(); 
}); 

确认挂载顺序

另外要确保你的日志中间件挂载在所有路由之前(就像你现在代码里的位置一样,在helmet、bodyParser之后,各个server.get/server.post以及兜底的*路由之前),这样所有经过Express的请求都会先经过这个日志中间件。

这样修改之后,你再访问页面或者调用接口,就能看到控制台正常打印日志啦!

内容的提问来源于stack exchange,提问作者Tekeste Kidanu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:57:36