#node.js #mongodb
#node.js #mongodb
Вопрос:
Я рассматривал эти примеры:
http://mongodb.github.io/node-mongodb-native/2.2/api/
Но я довольно смущен тем, как получить доступ к БД вне обратного вызова. MongoClient.connect, похоже, ничего не возвращает, и я попытался объявить переменную вне вызова connect, а затем изменить ее при обратном вызове, но это тоже не работает. Что я должен делать вместо этого?
Ответ №1:
Внутри обратного вызова connect объявите глобальный, просто не используя ключевое слово «var».
Примечание: поскольку javascript является асинхронным, нет гарантии, что обратный вызов выполняется до того, как вы используете переменные вне него. Обычно работает использование тайм-аута.
Пример файла узла:
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/test',connectCallback);
function connectCallback(err, db) {
col = db.collection('persons');
console.log('Connected to mongodb');
}
setTimeout(function() {
col.save( {task:"Access db outside callback",result: "Success"}, (err, result) => {
if (err)
return console.log(err)
console.log(result)
})
},1000)
Вывод оболочки Mongo: