我是nodejs新手,我正在尝试制作一个登录系统。这是我的登录帖子:
它进入了 if 语句(这意味着密码对应),但我的 Res.status 被忽略。我正在使用 postman 来查看它是否有效,它会从 if 语句中返回另一个 Res.status 。下图显示:
最佳答案
在您的代码中,您调用finally
,无论身份验证成功还是错误,都会调用该函数。尝试删除对 finally
的调用。
为什么你的 404 代码在 then/catch 之前被调用?因为它不在finally回调中,而是在post处理程序中调用。
如果你的代码如下:
finally( () => res.status(400).json({...}) )
它将在 then/catch 之后调用。你的代码之前已经实现了。在解决或拒绝 Promise 之前对其进行了评估。
看下面的例子
function sendError() {
...
}
getUser()
.then(response => ...)
.catch(err => ... )
.finally( sendError() );
在我的示例中,sendError
始终在 getUser() 之前调用。您的代码中也是如此。
尽管如此,如果您在 finally
的回调中正确执行此操作,它会抛出错误,因为响应已发送。
希望说清楚
关于node.js - 当调用post方法时,当密码对应时,它会进入if语句,但我的if语句中的res被忽略,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59801425/