在下面的情况中,我将使用expressJWT
将参数从调用函数传递给异步函数。
module.exports = authorize;
function authorize(roles = ["test"]) {
const secret = config.Secret;
return expressJwt({ secret, isRevoked }).bind({ roles: roles});
}
async function isRevoked(req, payload, done, roles) {
console.log(roles) //undefined
}
在这里,authorize
函数调用了异步函数isRevoked
,在那里我想传递参数roles
。
这是正确的方法吗?
答案 0 :(得分:1)
如果使用中间匿名函数来获取回调参数req,有效负载和完成,则可以将它们与roles数组一起传递给已定义的函数。由于闭包,角色数组将可用于_isRevoked函数。
module.exports = authorize;
function authorize(roles = ["test"]) {
const secret = config.Secret;
return expressJwt({ secret, isRevoked: (req, payload, done) => _isRevoked(req, payload, done, roles)});
}
async function _isRevoked(req, payload, done, roles) {
console.log(roles) // ["test"]
}