Mongodb Nodejs: возвращать неопределенное после обратного вызова экспортируемой функции

1

Я новичок в мире nodejs. Я подключил узел к серверу mongodb. Теперь я хочу написать свой модуль для crud-операции mongodb, но когда я позвоню, найдите его обратно unifined. Как я могу решить эту проблему? main.js

var MongoClient = require('mongodb').MongoClient;
var express = require('express');
var app = express();
var url = "mongodb://localhost:27017/movie";
var result;
var crud = require('./crud.js');

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("movie");
  var test=crud.findAll(db,dbo,"test");
  console.log(test);
  });

var server = app.listen(8081, function () {
var host = server.address().address;
var port = server.address().port;
console.log("Listening on "+host+":"+port);
})

crud.js

exports.findAll = function(db, dbo, collection){
dbo.collection(collection).find({}).toArray(function(err,result){
if (err) throw err;
    db.close();
    return result;
});
}
  • 0
    Попробуйте использовать module.exports = { findAll: function (db, dbo, collection) {...} }

1 ответ

0
Лучший ответ

Функция findAll не возвращает значение, поэтому значение test не undefined. Вы должны иметь дело с результатом обратного вызова или выполнить реализацию на основе Promise.

  • 0
    Да, у меня есть реализация, основанная на Promise, и теперь она работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню