node.js - 当调用post方法时,当密码对应时,它会进入if语句,但我的if语句中的res被忽略,为什么?

标签 node.js authentication post postman

我是nodejs新手,我正在尝试制作一个登录系统。这是我的登录帖子:

login post code

它进入了 if 语句(这意味着密码对应),但我的 Res.status 被忽略。我正在使用 postman 来查看它是否有效,它会从 if 语句中返回另一个 Res.status 。下图显示:

postman print

最佳答案

在您的代码中,您调用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/

相关文章:

node.js - 在 Google App Engine 上连接 Mongoose

java - Webview自动输入密码的方法

javascript - 为什么 req.body 为空?

node.js - 如何使用 toJSON 更改序列化实体的属性名称?

javascript - 使用 NodeJS 和 node-formidable 上传文件

java - Web 应用程序 - 身份验证/登录框架

jquery - 发布数组 jquery 序列化

algorithm - Restful : Using POST to execute algorithms

javascript - 使用 jsdom 或 Canvas for node.js 获取 Vibrant.js 样本

Python 以 javascript 形式登录网站