我的代碼中出現“錯誤 [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();
如果有人提供幫助,我會很高興。
uj5u.com熱心網友回復:
如果中間件的else分支被占用,則執行兩次。這會導致另一個中間件的兩次執行,從而導致兩個回應,這會導致觀察到的錯誤。verifynext()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/429951.html
