我正在使用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)
?与范围有关吗? 最佳答案
似乎函数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
关于javascript - 函数的这些 Node js变量是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25698660/