为什么这些restify函数以“return next()”结尾?

时间:2015-11-05 06:28:36

标签: javascript node.js rest restify

我正在查看restify的文档。

http://restify.com/

我注意到有几个函数需要以return next()结束。以下是一些例子;

function send(req, res, next) {
   res.send('hello ' + req.params.name);
   return next();
 }

 server.post('/hello', function create(req, res, next) {
   res.send(201, Math.random().toString(36).substr(3, 8));
   return next();
 });
 server.put('/hello', send);
 server.get('/hello/:name', send);
 server.head('/hello/:name', send);
 server.del('hello/:name', function rm(req, res, next) {
   res.send(204);
   return next();
 });

return next();的目的是什么?为什么功能需要以它结束?

1 个答案:

答案 0 :(得分:2)

来自Restify's website

  

注意使用next()。您负责调用next()以运行链中的下一个处理程序。如下所示,您可以传递一个Error对象,让restify自动将响应返回给客户端。

所以基本上如果你的函数是链中的最后一个处理程序,你就不需要调用next(),因为没有办法知道你添加它,让Restify处理它。