[英]Cannot set headers after they are sent to the client node-js error
我的代码中出现“错误 [ERR_HTTP_HEADERS_SENT]:将标头发送到客户端后无法设置”错误。
router.get("/", verify, async (req, res) => {
const user = await pool.query("SELECT * FROM users WHERE id = $1", [req.user]);
if (user.rows.length) {
return res.status(200).json({ user: user.rows[0] });
} else {
return res.status(403).json({ msg: "Not Authorized" });
}
});
下面是验证中间件,
try {
const { auth } = req.cookies;
if (!auth) {
return res.status(403).json({ msg: "Not Authorized" });
} else {
const data = jwt.verify(auth, process.env.JWT_SECRET);
req.user = data.id;
next();
}
} catch (error) {
return res.status(403).json({ msg: "Not Authorized" });
}
next();
如果有人帮忙,我会很高兴。
如果走的是verify
中间件的else
分支,则执行两次next()
。 这导致其他中间件的两次执行,因此导致两个响应,从而导致观察到的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.