我正在使用NodeJS,Express和PassportJS创建API,但我认为这是一个JavaScript问题。
app.get('/test', function (req, res, next) {
passport.authenticate('bearer', { session: false },
function (err, user, info) {
if (user === false) {
res.send('ko');
} else {
res.send('ok');
}
})(req, res, next);
});
我的问题是:
为什么(req, res, next)
在验证功能之后?它与范围有关吗?
答案 0 :(得分:1)
似乎函数password.authenticate
返回一个函数/闭包。代码就像
foo(x, y)(z);
即。调用foo(x, y)
返回的函数使用参数z
调用。
一个非常简单的例子是
function multiplier(k) {
return function(x) { return x*k; };
}
console.log(multiplier(7)(6)); // outputs 42
答案 1 :(得分:0)
()
调用该函数。其中的变量作为参数传递给它。您可以在代码的第一行看到它们进入包含函数。