节点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上粘贴代码没有帮助,除非您解释代码如何回答问题。