在我的express
应用程序中,当到达错误中间件时,它仍然在res.json
之后执行第二个中间件功能。 docs说:
下表中响应对象(res)上的方法可以向客户端发送响应,并终止请求 - 响应周期。如果没有从路由处理程序调用这些方法,则客户端请求将保持挂起状态。
其中res.json
是表中将终止请求 - 响应周期的方法之一。此外,我不会在我的快速错误中间件
router.use((err, req, res, next) => {
res.json({
success: false,
message: 'fail: email already exists'
});
});
//test still gets logged even though the express error middleware is executed
router.post('/', (req, res , next) => {
console.log('test');
});
为什么第二个express
中间件仍在执行,即使我没有在错误中间件中调用next并执行res.json()
?