我正在尝试将发生的身份验证错误作为Node.js / Express JSON响应API发送出去。
我的代码:
console.log("LOGIN USER...");
try {
let errors = validationResult(req);
if (!errors.isEmpty()) throw { code: 400, message: errors }
let authopt = { usernameField: 'email', passwordField: 'password' };
passport.authenticate('local', authopt, (err, user, info) => {
if (err || !user) {
console.log("ERROR IS PASSING FROM HERE.");
throw { code: 500, message: err }
}
else {
const token = user.generateJWT();
return res.status(200).json({
"jwtToken": token,
});
}
})(req, res, next)
} catch (error) {
return res.status(error.code || 500).send(error.message || "Unknown internal server error ! .");
}
在端点呼叫之后,消息“错误正在从这里通过。” 出现在我的控制台中,并显示错误:
(节点:9392)UnhandledPromiseRejectionWarning:未处理的承诺 拒绝。该错误是由抛出异步内部引起的 没有捕获块或拒绝承诺 未使用.catch()处理。 (拒绝ID:1)(节点:9392)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。在 未来,未处理的承诺拒绝将终止 具有非零退出代码的Node.js进程。
我正在寻找一种保持相同代码结构的解决方案。有帮助吗?