Я могу вставлять и извлекать данные из базы данных neDB в nodejs. Но я не могу передавать данные вне функции, которая ее извлекает.Получить данные node.js neDB в переменную
Я прочитал документацию neDB, и я искал и пробовал различные комбинации обратных вызовов и возвратов (см. Код ниже), не найдя решение.
Я новичок в javascript, поэтому не знаю, не понимаю ли я, как использовать переменные вообще или эта проблема связана с использованием neDB специально или и тем, и другим.
Не могли бы вы объяснить, почему «x» в моем коде никогда не содержит результаты JSON docs из базы данных? Как я могу заставить его работать?
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"*