Имейте очень странную прерывистую проблему, и тот, который я просто не могу понять. Не уверен, что это связано с кодом, ошибка в выражении или просто что-то мне не хватает.Странный (прерывистый) Невозможно установить заголовки после отправки ошибки
У вас есть приложение, все в MEAN, которое, как и многие другие приложения, выполняет кучу вызовов API. Некоторые даже параллельно.
Это все работало идеально утром, на самом деле, читать «где он получает странно», но потом вдруг он перестает работать, и сервер начинает падать сверх с ниже ошибки:
GET /api/skillList 304 45.345 ms - -
_http_outgoing.js:335
throw new Error('Can\'t set headers after they are sent.');
^
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:335:11)
at ServerResponse.header (/Users/bengtbjorkberg/WebstormProjects/ResourceEdge/node_modules/express/lib/response.js:695:10)
at ServerResponse.json (/Users/bengtbjorkberg/WebstormProjects/ResourceEdge/node_modules/express/lib/response.js:232:10)
at /Users/bengtbjorkberg/WebstormProjects/ResourceEdge/routes/api.js:78:9
at /Users/bengtbjorkberg/WebstormProjects/ResourceEdge/node_modules/mongoose/node_modules/kareem/index.js:160:11
at Query._findOne (/Users/bengtbjorkberg/WebstormProjects/ResourceEdge/node_modules/mongoose/lib/query.js:1145:12)
at /Users/bengtbjorkberg/WebstormProjects/ResourceEdge/node_modules/mongoose/node_modules/kareem/index.js:156:8
at /Users/bengtbjorkberg/WebstormProjects/ResourceEdge/node_modules/mongoose/node_modules/kareem/index.js:18:7
at process._tickCallback (node.js:355:11)
Process finished with exit code 1
Что Я проверил.
- Бросил тонны логов, похоже, что падает в разных местах, или я пропускаю один из мест
- потратило много времени, смотря на последний звонок (/ апи/skilllist), чтобы работайте вполне нормально.
Где это становится действительно странно
Если я запускаю консоль разработчика в Chrome, проблема не больше появляться, возможно, поэтому он работал весь день, но потом перестал работать, когда я хотел показать кому-то ...
Когда я писал это, я понял, что могу использовать сафари, и он падает на консоль java, и это тот же серверный сервер. И его запрос к базе данных ниже. Но если я включаю консоль в Chrome, он начинает работать ... Что я упускаю
exports.canlist = function (req, res) {
// use mongoose to get all profiles in the database
console.log("Canlist called");
Profile.find({}, {'_id':1, 'alias':1, 'img':1, 'summary':1, 'keys':1}, function(err, profiles) {
// if there is an error retrieving, send the error. nothing after res.send(err) will execute
if (err) {
console.log("Error " + err)
res.send(err)
}
console.log("Sending back " + profiles.length + " profiles")
res.json(profiles); // return all todos in JSON format
});
};