Jestem nowicjuszem w węźle i mongo po 15 latach VB6 i MySql. Jestem pewien, że to nie jest to, czego użyje mój końcowy program, ale muszę uzyskać podstawową wiedzę o tym, jak wywołać funkcję w innym module i uzyskać wyniki z powrotem.Node.js, Mongo znajduj i zwróć dane
Chcę, aby moduł miał funkcję otwierania bazy danych, znajdowania w zbiorze i zwracania wyników. Być może zechcę dodać kilka dodatkowych funkcji w tym module dla innych zbiorów. Na razie potrzebuję go maksymalnie prostego, mogę dodać obsługę błędów itp. Później. Byłem na tym przez kilka dni próbując różnych metod, module.exports = {... wokół funkcji i bez niej, .send, zwróć wszystko bez powodzenia. Rozumiem, że jest to asynchronizacja, więc program mógł minąć punkt wyświetlania przed danymi.
Oto, co próbowałem z Mongo z bazą danych db1 z kolekcją 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 (pozycje) działa, gdy nazywa "FindinCol1 Ale nie console.log (b) (wraca„niezdefiniowana”), więc ja nie dostaję zwrot lub mam wklejony przez czas to zwroty. Czytałem dziesiątki postów i oglądałem dziesiątki filmów, ale wciąż jestem w tym punkcie. Każda pomoc będzie bardzo ceniona.
Muszę mieć nowszą wersję, ponieważ twoja druga opcja działa świetnie. – MM1
Nie mogę ci wystarczająco podziękować! Będę czytać z obietnicami. – MM1
Dzięki! Świetne rozwiązania! Ale w drugim przypadku wydaje się, że nie potrzebujemy sekundy. Czy jest jakiś powód, dla którego go tam umieściłeś? –