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

Я новичок в мире Node.js. Я подключил узел к моему серверу MongoDB. Теперь я хочу написать свой модуль для CRUD-операций MongoDB, но когда я вызываю find, он возвращает undefined.

Как я могу решить эту проблему?

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;
    });
    }

1 Ответ

0 голосов
/ 11 мая 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...