【发布时间】:2021-08-24 14:24:37
【问题描述】:
我正在学习 node.js 和 express js。我正在学习一个教程,但我的却产生了这个错误。
UnhandledPromiseRejectionWarning:错误 [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头
虽然代码可以正常工作,但我在 console.log 上收到此错误。该代码用于用户名和密码的用户身份验证。
这是产生此错误的确切代码:此错误仅在我尝试测试错误的密码或用户名时发生。
router.post("/login", async (req, res) =>{
try {
const user = await User.findOne({username: req.body.username})
!user && res.status(400).json("Wrong credentials");
const passValidate = await bcrypt.compare(req.body.password, user.password)
!passValidate && res.status(400).json("Wrong credentials");
const {password, ...others} = user._doc;
res.status(200).json(others)
} catch(err) {
res.status(500).json(err);
}
});
【问题讨论】:
-
你在
try中设置了三次res.status(...) -
@depperm 我怎样才能最好地编写代码?他们都测试用户名、密码,最后一个是用户名、密码匹配时。