gpt4 book ai didi

javascript - 在 Node 中获取 header 重新发送错误

转载 作者:行者123 更新时间:2023-12-03 11:05:19 25 4
gpt4 key购买 nike

我有以下路由:

router.get('/blog/:title', function (req, res) {
blog.getBlogPost(req, function (data) {
res.render('blog', data);
});
});

和函数getBlogPost

exports.getBlogPost = function (req, callback) {

// TODO SAFE PARAM
// TODO ERR Handling

var title = req.param('title');
Blog.findOne({permaLink: title}).exec(function (err, data) {

var date = new Date(+data.timestamp);
data.tags = createHashtagsFromCSV(data.tags);
data.date = month_names_long[date.getMonth()] + " " + date.getDate() + ", " + date.getFullYear();

callback(data);
});
// not found
callback({});
};

奇怪的是我得到了以下 Node 控制台日志

Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (http.js:689:11)
at ServerResponse.header (C:\Users\Michael\Desktop\qcode\node_modules\express\lib\response.js:662:10)
at ServerResponse.send (C:\Users\Michael\Desktop\qcode\node_modules\express\lib\response.js:146:12)
at fn (C:\Users\Michael\Desktop\qcode\node_modules\express\lib\response.js:896:10)
at View.exports.renderFile [as engine] (C:\Users\Michael\Desktop\qcode\node_modules\jade\lib\jade.js:325:12)
at View.render (C:\Users\Michael\Desktop\qcode\node_modules\express\lib\view.js:76:8)
at Function.app.render (C:\Users\Michael\Desktop\qcode\node_modules\express\lib\application.js:527:10)
at ServerResponse.res.render (C:\Users\Michael\Desktop\qcode\node_modules\express\lib\response.js:900:7)
at module.exports (C:\Users\Michael\Desktop\qcode\app.js:65:9)
at Layer.handle_error (C:\Users\Michael\Desktop\qcode\node_modules\express\lib\router\layer.js:58:5)

我已经在我的项目中做过几次这样的事情了,但是这次它抛出了这个错误,我现在知道为什么了?知道为什么吗?

最佳答案

您的回调调用两次。所以第二个抛出 header 错误

做一些类似的事情

Blog.findOne({permaLink: title}).exec(function (err, data) {

if (!data) {
callback({});
return;
}

var date = new Date(+data.timestamp);
data.tags = createHashtagsFromCSV(data.tags);
data.date = month_names_long[date.getMonth()] + " " + date.getDate() + ", " + date.getFullYear();

callback(data);
});

关于javascript - 在 Node 中获取 header 重新发送错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27887391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com