node.js - 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();
}
})
解决方案
推荐阅读
- excel - XMLHTTP 指示 URL
- javascript - 如何在 Angular 中渲染开槽的 ng-template
- python - 如何从烧瓶中的 HTML 选项值获取数据
- java - Java 中的静态方法调用是如何工作的?
- reactjs - 专注于 Downshift Typeahead 中的第一项
- excel - 将 IBM Domino 管理员与 VBA 连接起来?
- c# - 插入时 AutoIncrement ID 列出现空错误(使用链接到 MySQL 的 MDB)
- r - 当我通过geom_jitter和ggplot添加异常值时,为什么异常值会出现在胡须上?
- npm - Lightbox2 CSS Webpack 无法解决
- docker - 使用 docker compose 运行解析服务器