express中提示Error: Can't set headers after they are sent但依然能正常使用?

发布于 2022-09-06 06:44:20 字数 360 浏览 8 评论 0

通过express-generator生成的项目骨架,在app.js中设置路由

app.use('/add',add);

在routes/add.js中代码为:

router.get('/', function(req, res, next) {
    res.render('add');
    next();
});

运行程序,一旦访问/add就会在控制台中报错:

Error: Can't set headers after they are sent

但程序依然能正常使用,请问是什么引起的,怎么解决?

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

来世叙缘 2022-09-13 06:44:20

res.render已经输出渲染视图了,此时不应该再调用next,会传递到下一个方法重复输出

暮凉 2022-09-13 06:44:20

请求响应处理流程上有问题,你在某个地方已经结束了这个req请求,比如使用了 res.end() ,但是在后续又对同样的请求继续响应。

↘人皮目录ツ 2022-09-13 06:44:20

可以
return next()
or
return res.json()
使用return 来结束

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文