首页 > 解决方案 > Node & Express Endpoint 总是返回 200

问题描述

我的 node.js API 中的代码块有问题。我有一个简单的 JWT 身份验证 API,它在登录和身份验证方面按预期工作。但是,我无法快速返回 200 以外的响应状态。

如果我为登录端点输入了无效的用户名或密码,我收到的响应是一个空的 200 响应,尽管下面的代码执行了 catch 块,并且我返回了一个 500 的响应和我的错误。从 post 方法。这在某处丢失,并转换为空的 200 响应。成功登录后,return res.status(200).json....代码会返回正确的响应。

我在所有端点上都有相同的问题,所有错误响应都作为空的 200 响应返回。

任何人都可以建议。

app.post('/user/login', async (req, res) => {
    const email = req.body.user.email;
    const password = req.body.user.password;
    try {
      const authServiceInstance = new AuthService();
      const { user, token } = await authServiceInstance.Login(email, password);
      return res.status(200).json({ user, token }).end();
    } catch(e) {
      console.log('Error in login: ', e);
      return res.json(e).status(500).end();
    }
  })

标签: node.jsrest

解决方案


推荐阅读