我能够在 nodejs 中从 neDB 数据库插入和检索数据。但是我不能将数据传递到检索它的函数之外。
我已经阅读了 neDB 文档,并搜索并尝试了不同的回调和返回组合(参见下面的代码),但没有找到解决方案。
我是 javascript 新手,所以我不知道我是否误解了一般如何使用变量,或者这个问题是否与专门使用 neDB 或两者有关。
有人可以解释为什么我的代码中的“x”不包含数据库中的文档 JSON 结果吗?我怎样才能让它工作?
var fs = require('fs'),
Datastore = require('nedb')
, db = new Datastore({ filename: 'datastore', autoload: true });
//generate data to add to datafile
var document = { Shift: "Late"
, StartTime: "4:00PM"
, EndTime: "12:00AM"
};
// add the generated data to datafile
db.insert(document, function (err, newDoc) {
});
//test to ensure that this search returns data
db.find({ }, function (err, docs) {
console.log(JSON.stringify(docs)); // logs all of the data in docs
});
//attempt to get a variable "x" that has all
//of the data from the datafile
var x = function(err, callback){
db.find({ }, function (err, docs) {
callback(docs);
});
};
console.log(x); //logs "[Function]"
var x = db.find({ }, function (err, docs) {
return docs;
});
console.log(x); //logs "undefined"
var x = db.find({ }, function (err, docs) {
});
console.log(x); //logs "undefined"*