Ich bin mit einem seltsamen Problem konfrontiert, während ich eine einfache todo MEAN Anwendung benutze, die ich eine entfernte Datenbank benutze und wann immer ich einen Datensatz aktualisiere oder lösche immer aber meistens), wirft sie den Fehler:Knoten, Mongo, Mongoos - Kopfzeilen können nicht gesetzt werden, nachdem sie gesendet wurden
events.js:160
throw er; // Unhandled 'error' event
^
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:357:11)
at ServerResponse.header (E:\Examples\mean-stack-todo\node_modules\express\lib\response.js:730:10)
at ServerResponse.json (E:\Examples\mean-stack-todo\node_modules\express\lib\response.js:253:10)
at E:\Examples\mean-stack-todo\app\routes.js:11:13
at E:\Examples\mean-stack-todo\node_modules\mongoose\lib\model.js:3800:16
at E:\Examples\mean-stack-todo\node_modules\kareem\index.js:220:48
at E:\Examples\mean-stack-todo\node_modules\kareem\index.js:131:16
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)
Dieser Fehler mit POST auftritt und DELETE wo Implementierungen sind:
app.post('/api/todos', function (req, res) {
// create a todo, information comes from AJAX request from Angular
Todo.create({
text: req.body.text,
done: false
}, function (err, todo) {
if (err) {
res.send(err);
}
// get and return all the todos after you create another
getTodos(res);
});
});
und löschen:
// delete a todo
app.delete('/api/todos/:todo_id', function (req, res) {
Todo.remove({
_id: req.params.todo_id
}, function (err, todo) {
if (err) {
res.send(err);
}
getTodos(res);
});
});
Ich weiß nicht, woher der Fehler stammt.
was macht die 'getTodos (res)' tut –
Sie senden Antwort mehr als 1 Mal. Überprüfen Sie die 'getTodos'-Funktion. Und ändern Sie auch 'res.send (err);' zu 'return.send (err);' – Edgar