私のコードでエラーを見つけようとしていますが、他のトピックからのものはどれも適合しません。送信後にヘッダーを設定できません
Expressモジュールからget
方法が含まapp.jsコードは、あり:で
exports.all = function (req, res) {
Notes.all(function(err, docs){
if(err){
console.log(err);
return res.sendStatus(500);
}
res.send(docs);
})
};
:
app.get('/notes', notesController.all);
create
方法をapp.jsへの輸出notesController.jsコード、ありますmodel
このコード:
アプリケーションがクラッシュするこのエラー:コールバック関数で「コントローラ」と私の心で
process.nextTick(function() { throw err; }); ^
Error: Can't set headers after they are sent. at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:357:11) at ServerResponse.header (O:\OGPI6\node_modules\express\lib\response.js:725:10) at ServerResponse.json (O:\OGPI6\node_modules\express\lib\response.js:253:10) at ServerResponse.send (O:\OGPI6\node_modules\express\lib\response.js:158:21) at O:\OGPI6\controllers\notes.js:9:13 at O:\OGPI6\models\notes.js:6:9 at handleCallback (O:\OGPI6\node_modules\mongodb\lib\utils.js:120:56) at O:\OGPI6\node_modules\mongodb\lib\cursor.js:860:16 at handleCallback (O:\OGPI6\node_modules\mongodb-core\lib\cursor.js:171:5) at setCursorDeadAndNotified (O:\OGPI6\node_modules\mongodb-core\lib\cursor.js:505:3)
のみエラー:
if(err){
console.log(err);
return res.sendStatus(500);
}
res.send(docs);
しかし、私はエラーが発生したときに、それが機能を終了し、sendStatus(500)
を返しますが、伐採後にしなければならないと思いましたコンソールのエラーでres.send(docs)
が返され、2番目のヘッダーが送信されているためアプリケーションがクラッシュします。それはうまく見えますが、うまくいきません。誰でも私が失敗した方法を指摘できますか?
youtの 'exports.all'メソッドがコールバックを複数回起動している可能性があると思いますか?あなたは 'console.log'をコールバックの先頭に置こうとしましたか? –
@BenjiLeesに同意します。コールバックが2回呼び出されているようです。 – robertklep