【发布时间】:2016-10-12 01:55:07
【问题描述】:
我熟悉 Express,但对 Restify 不熟悉。 Restify 的文档中有很多在res.send() 之后调用next() 的例子如下:
server.get('/echo/:name', function (req, res, next) {
res.send(req.params);
return next();
});
这看起来也是一些 Restify 专家推荐的模式:
The consequences of not calling next() in restify
这样做的真正用例是什么?在你调用res.send() 之后,链中的下一个处理程序可以做什么?
【问题讨论】:
-
嗯,当然,它可能会做额外的数据库工作或请求跟踪等,但是......如果你不做这些,你为什么要调用.next?这样做将允许您添加的未来处理程序无需返回即可工作,并且由于调用 .next 并没有真正的危害,您不妨只知道如果多个路由碰巧匹配同一个请求,则只有其中一个可以成功调用
res.send,第二个会报错。 -
@Kevin B:感谢您的回答。 'post-render' 类型的中间件就是这种情况,对吧?请在下面阅读我的意见,让我知道您的想法。
-
正确。我同意你的结论,只有在你知道自己在做什么的情况下才这样做。