Ani*_*aje 6 javascript node.js
我是来自 Java 背景的 NodeJs 新手,我试图了解约定next()调用的使用。
我已经浏览了以下帖子 -
1. javascript node.js next()
2. https://www.naeemrana.com/node-js/express-js-middleware-what-is-next/
3.何时在 Node.js 中使用 next() 并返回 next()
我可以理解的是 next() 类似于回调,或者可能是当前函数执行后要执行的下一个函数的引用,
也理解建议使用return next();而不是next();避免函数被重新执行。
以下是来自链接之一的示例代码 -
app.get('/users/:id', function(req, res) {
var user_id = req.params.id;
if(user_id) {
// do something
} else {
next(); // here comes middleware.
}
});
Run Code Online (Sandbox Code Playgroud)
我这里不明白的是正在执行的函数没有第三个参数,
但它确实调用了 next() 函数,这里的想法是什么?
此约定的使用仅用于路由逻辑吗?
next() 是回调吗?它是对下一个要执行的函数的引用吗?或者是其他东西?
Node.Js 不知道next。这是框架使用的模式express。
由于express有一个中间件的概念,可以在每个进入它的请求中调用它。
如果当前的中间件函数没有结束请求-响应周期,则必须调用 next() 将控制权传递给下一个中间件函数。否则,请求将被挂起。
var app = express()
app.use(function (req, res, next) {
if(condition_to_return_from_here){
res.end(req.params.id)
}else{
console.log('Time:', Date.now())
next()
}
})
Run Code Online (Sandbox Code Playgroud)
更多关于expressjs中间件的信息 - https://expressjs.com/en/guide/using-middleware.html
| 归档时间: |
|
| 查看次数: |
9000 次 |
| 最近记录: |