-1
我有express3的node.js。node.js中的函數順序
對於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
所以,問題是:
- 爲什麼節點調用__2第一,和__0,__1在__2之後,但行順序是其他?
- 如何把
err
,persons
轉換成result
?
因爲'db.person.findAll'是**異步**。看看[我的答案的第一部分](http://stackoverflow.com/a/14220323/218196)。任何必須與結果一起工作的東西必須在回調中。 –
@FelixKling非常感謝。 – fend25