を持つExpressアプリケーションで「エラー:送信後にヘッダーを設定できません」Expressおよびノードが新しく、アプリケーションで保護RESTエンドポイントをテストするときに、データがエンドポイントから返されますただし、コンソールログにはコンソールログが表示されます。Node:
"Error: Can't set headers after they are sent"
サーバーを停止します。ここでのSOの検索は、これは、複数の応答を送信するときに発生するようですが、私は私のコードでそれを見ていない:
router.get('/books', userAuthenticated, function (req, res, next) {
Book.find({}, function(err, docs){
if(err) {
res.send(err)
} else {
res.send(docs);
// next();
// return;
}
})
});
午前クライアントへ/からのリクエスト/レスポンスを送信する場合、または予想されるこのエラーですサーバー上のエラーを処理する際に何か不足していますか?
userAuthenticatedミドルウェアが応答を送信するのに最適です。その関数をチェックして、next()を呼び出す前にresが送信されていないことを確認してください。 – Brian
私は単純に同じエラーを返すようにリファクタリングしたuserAuthenticatedミドルウェアです。 isAuthenticated()){ return next(); } res.redirect( '/ notloggedin'); } – user2232681
あなたのブラウザまたは郵便配達員で応答を確認してください。デベロッパーコンソールを開き、ネットワーキングに行き、/ books – Brian