我有node.js和express3。
对于mongodb的使用,我需要mongo-lazy个包。
所以,我有简单的GET路由器:
var db = require('mongo-lazy').open({
db: 'somedb',
host: '127.0.0.1',
port: 27017,
user: 'someuser',
password: 'somepassword'
});
var result={};
db.person.findAll({}, function (err, persons) {
result.err=err;
result.persons=persons;
console.log("__0: " + typeof persons);
console.log("__1: " + typeof result.persons);
});
console.log("__2: " + typeof result.persons);
if (!result.err) res.send("test");
控制台是:
Express server listening on port 3000
__2: undefined
GET /mongo 200 1508ms - 5
__0: object
__1: object
所以,问题是:
err
,persons
放入result
?答案 0 :(得分:1)
findAll()
是一个异步调用,传递给它的函数是函数返回时执行的回调。像这样重新排列以获得预期的行为;
db.person.findAll({}, function (err, persons) {
if (!err) res.send(persons);
});