这是一个简单的get请求,显示错误“无法在发送后设置标头”。我将它发送回如下所示的控制器。它确实成功记录了数据库(doc)的内容,因此连接良好,只有在写入“res.json(doc)”行时才会抛出此错误。还有.each()方法的替代方法吗?它告诉我它已被弃用。
server.js
var app = express();
//db connection
MongoClient.connect("mongodb://userName:secretPassword@aws-us-east-1-portal.7.dblayer.com:10712,aws-us-east-1-portal.10.dblayer.com:10316/dbName", function(err, db) {
if (err) throw err;
var contactList = db.collection("contactList");
app.get('/contactList', function (req, res) {
var cursor = contactList.find();
cursor.each(function(err, doc) {
res.json(doc);
});
});
controller.js
$http.get('/contactList').success(function (response) {
$scope.contactList = response;
});
答案 0 :(得分:1)
您只需触发一次res.json()
即可。这是您发送给客户端的响应。
您可能想要做的是聚合结果并将其作为单个集合传递
答案 1 :(得分:1)
使用toArray
方法:
app.get('/contactList', function (req, res) {
contactList
.find({})
.toArray(function(err, docs) {
// TODO: Error handling
res.json(docs);
});
}