【发布时间】:2012-08-03 20:02:49
【问题描述】:
我正在开发一个 express.js 应用程序,没有猫鼬。
我要做的是,将对 mongodb 的调用封装在一个函数中,向函数传递一些参数并从 mongodb 中取回数据。
下面的代码解释了我遇到的问题
function get_data()
{
var mongo = require('mongodb'),Server = mongo.Server,Db = mongo.Db;
var server = new Server('localhost', 27017, {auto_reconnect: true});
var db = new Db('test', server);
db.collection('test_collection', function(err, collection) {
collection.find().toArray(function(err, items) {
var data = items;
});
});
console.log(data);
console.log("in get");
return data;
}
如何从这个函数返回我从 mongo db 中提取的 items Array。
我想知道 javascript 中的作用域是如何工作的,以及如何将项目放入变量中并从 get_data 函数中返回它们。
回答后
我修复了代码。它现在可以工作并且看起来像这样。
function get_data(callback) {
var mongo = require('mongodb'),Server = mongo.Server,Db = mongo.Db;
var server = new Server('localhost', 27017, {auto_reconnect: true});
var db = new Db('test', server);
db.open(function(err, db) {
if (err) return callback(err);
db.collection('test_collection', function(err, collection) {
if (err) return callback(err);
collection.find().toArray(callback);
});
});
}
get_data(function(err, items) {
// handle error
console.log(items);
});
【问题讨论】:
标签: javascript node.js mongodb express