2016-12-16 1 views
0

Есть ли способ отправить запросы MongoJS/Mongoose, вставляет и удаляет в module.exports при возврате объекта подтверждения?Ввод запросов MongoDB, вставляет и удаляет в module.exports или 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; 
}; 

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

ответ

2

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

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

Спасибо большое !!! Это сработало –

+0

Добро пожаловать! Пожалуйста, не забудьте отметить ответ, если он был полезен. См. Https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

Смежные вопросы