我意识到这听起来像一个完全多余的问题,但只是听到我出去。如何用Node.js查询Mongo?
最终我想从dom中查询MongoDB,但在此之前,我可以从我的路由模块中进行操作。这里是我的查询:
var db = require('./config/db.js');
router.get('/test', function (req, res) {
res.jsonp(db.getData('sampleSet'));
});
'sampleSet'是我查询的集合的名称。 getData函数应该从MongoDB获取数据。我把它放在MongoClient的连接函数的回调中,因为我无法用其他方式来计算。从我的角度来看,由于getData()
正在返回一个回调函数,它应该返回数据。但事实并非如此。 console.logs返回数据,但它必须返回undefined。
function findData (db, c, callback) {
var collection = db.collection(c);
collection.find().toArray(function(err, docs) {
assert.equal(err, null);
callback(docs);
});
};
MongoClient.connect(url, function(err, db) {
assert.equal(err, null);
console.log('CONNECTED CORRECTLY TO SERVER.');
exports.getData = function(c) {
return
findData(db, c, function(docs) {
console.log('FOUND THE FOLLOWING RECORDS: ');
return docs;
db.close();
});
}
});
'res.jsonp'将最终使用'getData'调用的返回值(这不算什么) –