在nodejs中发布后重定向错误“发送后无法设置 header ” 这是代码
router.post('/newItem', function (req, res, next) {
product.insertItem(req.body, req.files, function (err ,result) {
if (err) throw err;
res.redirect(307, '/home');
});
});
这是模块 insertItem 函数
module.exports.insertItem = function (doc, file, callback) {
mongo.item.insert(data, function (err, result) {
if (err) throw err;
callback(err, result);
});
})
这总是会抛出下面的错误
/Users/hello/Desktop/dev/project/node_modules/mongodb/lib/utils.js:95
process.nextTick(function() { throw err; });
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (http.js:690:11)
at ServerResponse.header (/Users/hello/Desktop/dev/project/node_modules/express/lib/response.js:564:10)
at ServerResponse.res.location (/Users/hello/Desktop/dev/project/node_modules/express/lib/response.js:678:8)
at ServerResponse.redirect
我该如何解决这个问题..?
最佳答案
当我在相关 block 之后有更多代码时,我在 res.redirect
中遇到了类似的问题。
我在重定向后通过return false
解决了这个问题。
在您的情况下,它看起来像这样:
res.redirect(307, '/home');
返回假;
关于node.js - 在nodejs中发布后重定向错误 'Can' t在发送后设置 header ',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28479496/