err_http_headers_sent erorr在express js中

发布于 2025-02-08 11:50:05 字数 926 浏览 0 评论 0原文

我在Express上工作了REST API,

我在下面的项目中写了一个自定义错误处理程序

function errorHandler(err, req, res, next) {
 if (res.headersSent) return next(err);
 res.status(500);
 res.send("error", { error: err }); 
}

,并且我故意犯了一个错误,以测试我的自定义错误处理程序是否正常工作

res.json({
 _id: user._id,
 username: user.username,
 email: user.email,
 token: generateToken(user.id, "ACCESS_TOKEN_SECRET", "20s"),
});

res.cookie("jwt", newRefreshToken, {
 httpOnly: true,
 secure: true,
 sameSite: "None",
 maxAge: 24 * 60 * 60 * 1000,
});

[我发送了响应,该响应已经设置了响应标题然后,我再次尝试通过res.cookies设置标题。最终导致标题发送错误]

现在我的问题是在我的自定义错误处理程序中,我通过(res.headerssent)返回下一个错误处理此错误(“ err ”);

但是我仍然会遇到错误,应用程序崩溃了。

因此,请让我知道如何以正确的方式处理它。

I was working on REST API in express

I wrote a custom error handler as below in my project

function errorHandler(err, req, res, next) {
 if (res.headersSent) return next(err);
 res.status(500);
 res.send("error", { error: err }); 
}

and i intentionally made a mistake as below to test whether my custom error handler is working

res.json({
 _id: user._id,
 username: user.username,
 email: user.email,
 token: generateToken(user.id, "ACCESS_TOKEN_SECRET", "20s"),
});

res.cookie("jwt", newRefreshToken, {
 httpOnly: true,
 secure: true,
 sameSite: "None",
 maxAge: 24 * 60 * 60 * 1000,
});

[I sent the response which already set the response header and then I again tried to set the headers by res.cookies eventually which results in headers sent error]

Now my question is in my custom error handler I handled this error by if (res.headersSent) return next("err");

But still I am getting error and app gets crashed.

So, Please let me know how to handle this in right way.

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文