javascript - NodeJS/SailsJS 中 next() 的具体作用是什么?

标签 javascript node.js sails.js

我一直在观看 SailsJS 教程,对于一些用户身份验证,我看到应用了该函数,但我没有得到 next(); 的具体函数是什么

最佳答案

下一步的目的是继续处理请求——这使得中间件之类的东西能够工作。

这是一个例子。

假设您有一个简单的 Express.js 应用程序,如下所示:

var app = express();
app.get('/', function(req, res) {
  res.send('hi!');
});

app.get('/dashboard', function(req, res) {
  res.send('there!');
});

上面的应用程序有 2 条路线,每条路线都有特定的功能。

现在,如果我们想创建一个特殊的函数,在执行每个请求之前将 hello world 打印到控制台,该怎么办?为此,我们需要修改上面的两条路由,或者创建一个中间件,如下所示:

var app = express();

app.use(function(req, res, next) {
  console.log('hello, world!');
  next();  // continue processing
});

app.get('/', function(req, res) {
  res.send('hi!');
});

app.get('/dashboard', function(req, res) {
  res.send('there!');
});

现在,对于每个请求,我们上面定义的函数将在我们的任何路由代码之前被调用,一旦它调用 next(),这意味着我们然后运行我们的路线代码。

很漂亮,对吧?

在基本层面上,next 对象只是要执行的“下一个函数”,因此当您说 next() 时,您是在告诉express 保留本质上是处理用户请求。

关于javascript - NodeJS/SailsJS 中 next() 的具体作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27024793/

相关文章:

javascript - Firefox 插件读取本地 XPI、文件和目录列表

mysql - 我们什么时候应该使用一对一关系模型而不是将属性添加到同一个表?

javascript - 我如何使用nodejs同时创建两个目录

node.js - 撤销 Keycloak 访问 token

angularjs - Protractor 使用 jasmine-reporters 测试报告

javascript - 水线错误 : "Unknown rule: default"

node.js - socket.on 函数中未触发 Socket.get 回调

javascript - 使用 Node.js,在 XMLHttpRequest 期间或之后创建一个新的 XMLHttpRequest

javascript - 如果输入无效,如何制作弹出窗口(警告框)?

javascript - Knockout + Bootstrap 3 单选按钮