gpt4 book ai didi

javascript - 了解 express.js/sails.js Controller 范围内的下一个中间件

转载 作者:行者123 更新时间:2023-11-30 12:49:54 25 4
gpt4 key购买 nike

我正在使用构建在 express.js 之上的 sails.js。在我的 routes.js 中,我定义了一条如下所示的路线

'/account/login': {
controller : 'Session',
action : 'logInAPI'
},

我的 session Controller 是这样的

logInAPI: function(req, res, next) {
if (!req.param('email') || !req.param('password')) {

var usernamePasswordRequiredError = [
'You must enter a username and a password.'
]

req.session.flash = {
err: usernamePasswordRequiredError
}

return next();
}
else{// Log in user};
}

我想知道我什么时候调用 next 在中间件中它指向哪里。如果只写 return 会怎样?而不是 return next();

最佳答案

调用 next() 而不是仅仅返回一些值的原因是为了允许中间件操作的异步串行链接。例如:

function(req, res, next){
setTimeout(next, 1000);
}

这是一个无用的中间件示例,它除了延迟响应一秒钟外什么都不做。请特别注意,在这种情况下,next() 在函数返回后 执行。

在更现实的场景中,setTimeout() 当然会被一些执行数据库获取和接受回调的逻辑所取代,例如。

关于javascript - 了解 express.js/sails.js Controller 范围内的下一个中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21321467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com