我正在开发一个 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 中提取的项目数组。
我想知道作用域在 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);
});