Размещение запросов 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);
});
}
};