gpt4 book ai didi

javascript - 无法解决 Nodejs Express 中的 promise

转载 作者:行者123 更新时间:2023-12-02 23:59:53 26 4
gpt4 key购买 nike

我的写法如下:-

const verifiedTokenPromise = token=> new Promise((resolve, reject)=>{
jwt.verify(token,publicCertFile,(err, payload)=>{
if(err){
reject(err);
}else{
resolve(payload);
}
});
});

然后我尝试使用导出函数来解决 promise ;

exports.verifyUserRequest = (token)=>{
if(!token){
return false;
}else{
async function tokenResolver(token){
try{
var payload = await verifiedTokenPromise(token);
console.log((payload));
return true;
}catch(e){
return false;
}
}
var demo3 = tokenResolver(token);
return demo3;
}

}

当我返回 promise 时,这是未定义的。

exports.isTokenValid = (req, res)=>{
if(!req.headers['x-api-key']){
res.status(422).json('No token provided');
}else{
confirmation = JWTCertifier.verifyUserRequest(req.headers['x-api-key']);
console.log("sdjfnsjdnfjsdf"+ " "+confirmation);
if(confirmation == true){
res.status(200).json('Valid token');
}else{
res.status(401).json('Invalid token');
}
}
}

这里的确认是未定义的

最佳答案

exports.isTokenValid = async (req, res)=>{
if(!req.headers['x-api-key']){
res.status(422).json('No token provided');
}else{
confirmation = await JWTCertifier.verifyUserRequest(req.headers['x-api-key']);
console.log("sdjfnsjdnfjsdf"+ " "+confirmation);
if(confirmation == true){
res.status(200).json('Valid token');
}else{
res.status(401).json('Invalid token');
}
}
}

只需使用 await JWTCertifier.verifyUserRequest(req.headers['x-api-key']); 而不是 JWTCertifier.verifyUserRequest(req.headers['x-api-key']); ']);。这是返回promise

关于javascript - 无法解决 Nodejs Express 中的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55223067/

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