我意識到這聽起來像一個完全多餘的問題,但只是聽到我出去。如何用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'調用的返回值(這不算什麼) –