我收到以下错误...
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
(C:\level3proj\node_modules\express\lib\response.js:730:10)
..当我执行以下代码时
var mongoose = require('mongoose');
var express = require('express');
// express router used to define routes
var userRouter= express.Router();
var userModel = mongoose.model('User');
var allUsers = [];
var fs = require('fs');
module.exports.controller = function(app) {
userRouter.get('/all',function(req,res) {
res.send("this is a route to get information on particular ");
userModel.find({},function(err,allUsers) {
if(err) {
res.send(err);
} else {
res.send(allUsers);
}
}); // end user model
}); // end get all users
app.use('/users', userRouter);
} // end controller code
加载时
http://localhost:3000/users/all
显示结果,同时它在控制台中抛出错误。
为什么我在控制台上收到错误?
答案 0 :(得分:0)
您无法两次发送http response。
您已将其发送至:
res.send("this is a route to get information on particular ");
然后您无法进行数据库查询并再次发送响应。
答案 1 :(得分:0)
您发送响应2次。第一个是在这里
res.send("this is a route to get information on particular ");
在此之后
if(err) {
res.send(err);
} else {
res.send(allUsers);
}
删除第一次发送,您的回复将起作用