javascript node.js next()

2022-08-30 02:06:10

我看到node.js中有很多用处。next

它是什么,它来自哪里?它有什么作用?我可以在客户端使用它吗?

对不起,它在这里使用例如:http://dailyjs.com/2010/12/06/node-tutorial-5/

查找 loadUser 函数。


答案 1

这似乎是 Node.js 控制流代码中的变量命名约定,其中对要执行的下一个函数的引用被赋予回调,以便在完成后启动。

例如,请参阅此处的代码示例:

让我们看看你发布的例子:

function loadUser(req, res, next) {
  if (req.session.user_id) {
    User.findById(req.session.user_id, function(user) {
      if (user) {
        req.currentUser = user;
        return next();
      } else {
        res.redirect('/sessions/new');
      }
    });
  } else {
    res.redirect('/sessions/new');
  }
}

app.get('/documents.:format?', loadUser, function(req, res) {
  // ...
});

该函数需要在其第三个参数中包含一个函数,该参数绑定到名称 。这是一个正常的函数参数。它包含对要执行的下一个操作的引用,并在完成后调用(除非找不到用户)。loadUsernextloadUser

在此示例中,名称没有什么特别之处;我们可以给它起任何名字。next


答案 2

它是在需要串行执行操作的情况下传递回调时使用的命名约定,例如扫描目录 ->读取文件数据 ->对数据执行某些操作。这优先于深度嵌套回调。Tim Caswell的HowToNode博客上以下文章的前三个部分对此进行了很好的概述:

http://howtonode.org/control-flow

另请参阅该发布第二部分的“顺序操作”部分:

http://howtonode.org/control-flow-part-ii