在restify中不调用next()的后果

2023-12-30

我已经使用 Restify 一段时间了。我遇到了一些缺少的代码next()我突然意识到我不确定我是否完全理解其中的原因why next()应该在之后调用res.send()。我明白为什么会在中间件情况下使用它,但是对于正常的路由为什么需要它?例如:

server.get('/a/:something/',function(req,res,next) {
    res.send('ok');
});

vs

server.get('/b/:something/',function(req,res,next) {
    res.send('ok');
    return next();
});

If return next();被排除在代码之外,它似乎不会导致错误,并且从我所看到的情况来看是有效的。


The Restify API 指南 http://mcavage.me/node-restify有这样说:

您负责调用 next() 以便运行链中的下一个处理程序。

他们所指的“链”是每个路由的处理程序链。一般来说,每个路由将由多个处理程序按特定顺序处理。链中的最后一个处理程序实际上并不需要调用 next() ——但是假设处理程序始终是最后一个处理程序是不安全的。在处理请求时,未能调用链中的所有处理程序可能会导致严重或细微的错误。

因此,作为良好的编程实践,您的处理程序应该always调用 next() [使用适当的参数]。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在restify中不调用next()的后果 的相关文章

随机推荐