【发布时间】:2014-11-27 14:56:18
【问题描述】:
大家好,我遇到了错误
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:331:11)
at ServerResponse.header (/Users/rajesh/Documents/NodeProject/nodetest1/node_modules/express/lib/response.js:662:10)
at ServerResponse.send (/Users/rajesh/Documents/NodeProject/nodetest1/node_modules/express/lib/response.js:146:12)
at fn (/Users/rajesh/Documents/NodeProject/nodetest1/node_modules/express/lib/response.js:896:10)
at View.exports.renderFile [as engine] (/Users/rajesh/Documents/NodeProject/nodetest1/node_modules/jade/lib/jade.js:325:12)
at View.render (/Users/rajesh/Documents/NodeProject/nodetest1/node_modules/express/lib/view.js:76:8)
at Function.app.render (/Users/rajesh/Documents/NodeProject/nodetest1/node_modules/express/lib/application.js:527:10)
at ServerResponse.res.render (/Users/rajesh/Documents/NodeProject/nodetest1/node_modules/express/lib/response.js:900:7)
at /Users/rajesh/Documents/NodeProject/nodetest1/app.js:57:9
at Layer.handle_error (/Users/rajesh/Documents/NodeProject/nodetest1/node_modules/express/lib/router/layer.js:58:5)
谁能告诉我这可能是什么原因。我的代码是
router.post('/readCSVFile',function(req,res){
if(typeof req.files.fileCSV === 'undefined'){
var err = {message: 'Please Select CSV file'};
res.render('error', {message: err.message,error: err});
}
var reader = yaCSV.createCsvFileReader(req.files.fileCSV.path,{
'separator':',', 'quote':'"', 'escape':'"'
});
reader.addListener('data',function(data){
var json = createJsonObject(data);
_data.push(json);
});
reader.addListener('error',function(err){
console.error("err.status " + err.status);
//err.status = 500;
//res.status(500);
err.message = 'Select the proper CSV file';
res.render('error', {message: err.message,error: err});
console.error(util.inspect(err));
});
reader.addListener('end', function() {
res.render('renderCSV',{data: _data});
});
var _data = [];
});
【问题讨论】:
-
据我所知,当您调用
response.render时,它会发送完整的 HTTP 响应。因此,如果您像在代码中的某些代码路径中那样再次调用它,则会出现此错误,因为它无法发送另一组 HTTP 响应标头,因为它已经开始写入响应正文。
标签: javascript node.js