我正在使用Node / Express.js,以便GET路由将从Mongo数据库中检索所有文档(足够简单)。正如代码所示,我能够以非阻塞的方式完成此任务。但是,当我取消注释将响应设置为JSON格式的行时,我收到语法错误 - 因为虽然每个文档都是JSON格式,但文档的聚合不是JSON格式。如何保留非阻塞数据流,但将其作为application/json
我在GET路由下面以及我用来从mongo数据库中获取项目的函数。
获取路线:
app.get('/people', function(req, res){
//res.set('Content-Type', 'application/json');
mongoDriver.get(null, function(err, code, document){
res.status(code);
if(err) {
res.write(JSON.stringify(err));
} else if(document){
res.write(JSON.stringify(document));
}
if(!document){
res.end();
}
});
});
我的mongo实现的相关部分。
var cursor = db.collection(self.collection).find(data);
cursor.each(function(err, doc) {
if(err) {
return callback(err, 500);
} else if (doc !== null) {
return callback(null, 200, doc);
} else {
db.close();
return callback(null, 200, null);
}
});
答案 0 :(得分:1)
使用mongodb
NPM包中的tutorial和res.json(...)
:
// ...
findDocuments(db, function(docs) {
db.close();
res.json(docs);
});
// ...