Размещение запросов MongoDB, вставка и удаление в module.exports или export

Есть ли способ поместить запросы, вставки и удаления MongoJS/Mongoose в module.exports при получении объекта подтверждения обратно?

server.js

var mongoq = require('./models/mongoq.js');
var result = mongoq.connectToServer();
console.log(result);

mongoq.js

var mongojs = require('mongojs');
db = mongojs('config', ['questions']);
module.exports = {
   //var answer;
   connectToServer: function(){
      db.questions.find(function (err, docs) {
         return docs;
      }
   //return answer;
};

Переменная результата возвращает значение undefined, и если я помещаю возвращаемый результат вне запроса, он хочет отправить его перед выполнением запроса.
Есть ли способ, которым я могу заставить module.exports ждать запроса перед его возвратом?
Спасибо

1 ответ

Решение

Вы можете добиться этого, используя мой обратный вызов. Т.е. вы вызываете модуль из другого файла с функцией в качестве параметра, эта функция имеет переменную результата в качестве параметра. Эта функция будет выполнена после завершения запроса.

server.js

var mongoq = require('./models/mongoq.js');
mongoq.connectToServer(function(result) {
   console.log(result);
});

mongoq.js

var mongojs = require('mongojs');
db = mongojs('config', ['questions']);
module.exports = {
   connectToServer: function(callback) {
      db.questions.find(function (err, docs) {
         callback(docs);
      });
   }
};
Другие вопросы по тегам