【发布时间】:2013-11-29 21:34:35
【问题描述】:
我有这个函数,我想返回一个 mongo 查询的值,但我得到了未定义的值。我正在尝试读取我的测试数据库的用户集合中所有用户的电子邮件地址。
这是我的代码:
var mongo = require('mongodb').MongoClient;
var connectionString = "mongodb://cannotdivulge.info.com:53778/testdb";
var users;
var db = mongo.connect(connectionString, function(err, db) {
if(err)
throw err;
console.log("connected to database");
users = db.collection('users');
});
exports.findAll = function(req, res) {
var cursor = users.find();
var result;
cursor.each(function(err, doc) {
if(err)
throw err;
result = doc.Email;
});
res.send(result);
};
result 应该等于电子邮件地址,但它是未定义的。 doc.Email 的值没有被保留。当我将 res.send() 放在 cursor.each() 中时,它会返回一个值。
另外,在实际返回它的值之前,我需要在函数中使用结果变量。这就是为什么我需要保留它的价值。
【问题讨论】: