javascript - 无法解决 Nodejs Express 中的 promise

标签 javascript

我的写法如下:-

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/

相关文章:

javascript - R 中 javascript reduce 的等价物

javascript - RequireJS:如何从一个模块加载多个函数?

javascript - 主干获取然后渲染模型

javascript - 使用 Javascript/jQUery 测量 HTML 中的字符串长度

javascript - 存储到期日期/时间戳的正确方法是什么?

javascript - 如何在 Angular 表达式大括号内引用动态变量?

javascript - 从客户端获取 Telerik 网格中所选行的值

javascript - 除固定区域外,整个屏幕都变暗?

Javascript 代码在 IE 中正常运行,在 Firefox 中正常运行

javascript - 查找多个元素