【发布时间】:2015-06-25 02:51:32
【问题描述】:
我想从下面的“./models/devices-client.js”中导出变量“result_array”
var config = require('./config');
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect(config.dbadmin_uri, function (err, db) {
if (err) throw err;
// console.log('Successfully connected');
var collection = db.collection('repvpn2');
collection.find().toArray(function (err, result_array) {
// console.log('Found results:', result_array);
module.exports.Hosts = result_array;
db.close();
});
});
但是当导入另一个文件时,它会打印“未定义”?
var Hosts = require('./models/devices-client').Hosts;
console.log(Hosts);
【问题讨论】:
-
MongoClient.connect()是异步的;换句话说,它可能需要(短)一段时间才能完成并调用设置module.exports.Hosts的回调函数。在此之前,例如在调用require()之后,该导出将是未定义的。
标签: node.js