节点js与mongodb错误:Can';t在发送邮件后设置邮件头
一次两次请求发送此错误显示并关闭我的服务器 我已使用此代码:节点js与mongodb错误:Can';t在发送邮件后设置邮件头,mongodb,Mongodb,一次两次请求发送此错误显示并关闭我的服务器 我已使用此代码: exports.getAllCompany = function (req, res) { Company.find({}, function (err, record) { if (err) { res.json({ type: false, resultData: "Error occured: " + err });
exports.getAllCompany = function (req, res) {
Company.find({}, function (err, record) {
if (err) {
res.json({
type: false,
resultData: "Error occured: " + err
});
} else {
res.json({
type: true,
company: record
});
}
});}
错误消息:
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:356:11)
at ServerResponse.header (/app/node_modules/express/lib/response.js:730:10)
at ServerResponse.send (/app/node_modules/express/lib/response.js:170:12)
at ServerResponse.json (/app/node_modules/express/lib/response.js:256:15)
at /app/server/mobile_api/AdminController/dashboard.js:279:17
at Query.<anonymous> (/app/node_modules/mongoose/lib/model.js:3388:16)
at /app/node_modules/kareem/index.js:259:21
at /app/node_modules/kareem/index.js:127:16
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)
错误:发送头后无法设置头。
在ServerResponse.OutgoingMessage.setHeader(_http_outgoing.js:356:11)
在ServerResponse.header(/app/node\u modules/express/lib/response.js:730:10)
在ServerResponse.send(/app/node\u modules/express/lib/response.js:170:12)
在ServerResponse.json(/app/node\u modules/express/lib/response.js:256:15)
at/app/server/mobile_api/AdminController/dashboard.js:279:17
在询问时。(/app/node_modules/mongoose/lib/model.js:3388:16)
at/app/node_modules/kareem/index.js:259:21
at/app/node_modules/kareem/index.js:127:16
at _combinedTickCallback(内部/流程/下一步_tick.js:73:7)
在进程中。_tick回调(内部/process/next_tick.js:104:9)
您很可能多次调用res.send()
共享/app/server/mobile_api/AdminController/dashboard.js文件会很有帮助很可能您多次调用res.send()
共享/app/server/mobile_api/AdminController/dashboard.js文件将有助于解决问题。请按照我的答案回答有相同问题的人,
exports.getAllCompany = function (req, res) {
res.writeHead(200, {"Content-Type": "application/json"});
Company.find({}, function (err, record) {
if (err) {
res.end(JSON.stringify({
type: false,
resultData: "Error occured: " + err
}));
} else {
res.end(JSON.stringify({
type: true,
company: record
}));
}
});
}
经过很长时间终于解决了这个问题。请按照我的答案回答有相同问题的人,
exports.getAllCompany = function (req, res) {
res.writeHead(200, {"Content-Type": "application/json"});
Company.find({}, function (err, record) {
if (err) {
res.end(JSON.stringify({
type: false,
resultData: "Error occured: " + err
}));
} else {
res.end(JSON.stringify({
type: true,
company: record
}));
}
});
}
dashboard.js看起来不错。可能是kareem(?)dashboard.js中的一些配置错误的钩子看起来不错。可能是kareem(?)什么方法调用getAllCompany中的一些错误配置的钩子?问题应该在那里。。。我想你也在做res.send.getAllComapny调用post方法。你能显示代码吗?像app.get(url,函数(req,res){调用getAllCompany})一样,什么方法调用getAllCompany?问题应该在那里。。。我想你也在做res.send.getAllComapny调用post方法。你能显示代码吗?像app.get(url,function(req,res){calls getAllCompany})一样,只需添加一行res.writeHead(200,{“Content Type”:“application/json”})并将res.json更改为res.end。我的意思是,在StackOverflow上粘贴代码没有帮助,除非您解释代码如何回答问题。只需添加一行res.writeHead(200,{“Content Type”:“application/json”})&将res.json更改为res.end我的意思是,在StackOverflow上粘贴代码没有帮助,除非您解释代码如何回答问题。