本文共 1321 字,大约阅读时间需要 4 分钟。
“Can’t set headers after they are sent.” => “不能发送headers因为已经发送过一次了” => 在处理HTTP请求时,服务器会先输出响应头,然后再输出主体内容,而一旦输出过一次响应头(比如执行过 res.writeHead() 或 res.write() 或 res.end()),你再尝试通过 res.setHeader() 或 res.writeHead() 来设置响应头时(有些方法比如 res.redirect() 会调用 res.writeHead()),就会报这个错误。
(说明:express中的 res.header() 相当于 res.writeHead() ,res.send() 相当于 res.write() )
方法:在一个回调函数前边应该加一个return,谢谢。。
User.get = function(username, callback) { // body... mongodb.open(function(err, db) { if (!err) { console.log("We are connected"); db.collection('users', function(err, collection) { collection.find().toArray(function(error, users) { console.log(users); }); collection.findOne({ name: username }, function(error, doc) { console.log('username' + doc); if (doc) { var user = new User(doc); console.log("findOne:"+User); mongodb.close(); //callback(err, user); return callback(err, user); } mongodb.close(); //callback(err, user); return callback(err, user); }); }); } });};
转载地址:http://ndfii.baihongyu.com/