Sono in grado di inserire e recuperare i dati da un database neDB in nodejs. Ma non posso passare i dati al di fuori della funzione che lo recupera.Ottieni i dati neDB node.js in una variabile
Ho letto la documentazione di neDB e ho cercato e provato diverse combinazioni di callback e restituzioni (vedere il codice seguente) senza trovare una soluzione.
Sono nuovo di javascript quindi non so se sto fraintendendo come utilizzare le variabili in generale o se questo problema è legato all'uso di neDB in particolare o entrambi.
Qualcuno potrebbe spiegare perché "x" nel mio codice non contiene mai i risultati JSON dei documenti dal database? Come posso farlo funzionare?
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"*