Я новичок в Express и Node, а при тестировании защищенной конечной точки REST в моем приложении с помощью Advanced REST Client данные возвращаются с конечной точки для клиентов, как ожидалось, однако журналы консоли«Ошибка: невозможно установить заголовки после их отправки» в приложении «Экспресс» с узлом
"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;
}
})
});
Является ли эта ошибка ожидается, при отправке запроса/ответа на/от Клиента или я Я пропустил что-то в обработке ошибки на сервере?
Лучше всего предположить, что пользовательское аутентифицированное промежуточное программное обеспечение отправит ответ. проверьте эту функцию, убедитесь, что res не отправлен перед вызовом next() – Brian
Вот прокомментированное промежуточное программное обеспечение UserAuthenticated, которое я реорганизовал как можно проще, но все же ту же ошибку: function userAuthenticated (req, res, next) { if (req. isAuthenticated()) { return next(); } res.redirect ('/ notloggedin'); } – user2232681
Проверьте ответ на свой браузер или почтальон. откройте консоль dev, перейдите в сеть, затем проверьте запрос/книги – Brian