Sono nuovo al nodo e mongo dopo 15 anni di VB6 e MySql. Sono sicuro che questo non è ciò che verrà utilizzato dal mio programma finale, ma ho bisogno di capire come chiamare una funzione in un altro modulo e ottenere risultati.Node.js, Mongo trova e restituisce i dati
Desidero che un modulo abbia una funzione per aprire un DB, trovare in una raccolta e restituire i risultati. Potrei voler aggiungere ancora un paio di funzioni in quel modulo per altre collezioni. Per ora ho bisogno che sia il più semplice possibile, posso aggiungere gestori di errori, ecc. Sono stato su questo per giorni cercando diversi metodi, module.exports = {... attorno alla funzione e senza di essa, .send, restituisci tutto senza fortuna. Capisco che sia asincrono, quindi il programma potrebbe aver passato il punto di visualizzazione prima che i dati siano lì.
Ecco cosa ho provato con Mongo che esegue un database di db1 con una raccolta di col1.
Db1.js
var MongoClient = require('mongodb').MongoClient;
module.exports = {
FindinCol1 : function funk1(req, res) {
MongoClient.connect("mongodb://localhost:27017/db1", function (err,db) {
if (err) {
return console.dir(err);
}
var collection = db.collection('col1');
collection.find().toArray(function (err, items) {
console.log(items);
// res.send(items);
}
);
});
}
};
app.js
a=require('./db1');
b=a.FindinCol1();
console.log(b);
console.log (articoli) funziona quando chiamate il 'FindinCol1' ma non console.log (b) (restituisce 'indefinito') in modo da non sto ricevendo il ritorno o sto incollato dal il tempo è tornato. Ho letto dozzine di post e ho guardato decine di video, ma a questo punto sono ancora bloccato. Qualsiasi aiuto sarebbe molto apprezzato.
Devo eseguire una versione più recente poiché la seconda opzione funzionava alla grande. – MM1
Non posso ringraziarti abbastanza! Leggerò le promesse. – MM1
Grazie! Grandi soluzioni! Ma nel secondo modo, non sembra che abbiamo bisogno del secondo, allora. C'è un motivo per cui lo metti lì? –