“Express:它们发送后无法设置标头”我是Express和Node的新手,并且在使用高级REST客户端测试应用程序中受保护的REST端点时,数据从端点返回到客户如预期,但控制台日志快速应用程序与节点
"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中间件发送响应。检查该函数,确保res在调用next()之前不会被发送() – Brian
这里是我已经重构的userAuthenticated中间件,尽管我尽可以简单,但仍然是相同的错误:function userAuthenticated(req,res,next){if isAuthenticated())return next(); } res.redirect('/ notloggedin'); } – user2232681
检查您的浏览器或邮递员的回复。打开开发控制台,进入网络,然后检查请求/书籍 – Brian