Я пытаюсь использовать bluebird в первый раз, чтобы свести к минимуму обратные вызовы и проблемы синхронизации. Я просто используя нативный клиент MongoDB с синей птицей следующим образом:nodejs mongodb bluebird error: db.getCollectionAsync не является функцией
var mongodb = require('mongodb');
var Promise = require("bluebird");
Promise.promisifyAll(mongodb);
var MongoClient = mongodb.MongoClient;
Тогда позже, в module.exports объекта, у меня есть:
foofunc: function(callback) {
MongoClient.connectAsync(url)
.then(function(db) {
//MongoDB should create collection if its not already there
console.log('... connect worked. OK now get bar collection');
return db.getCollectionAsync('bar');
})
.then(function(col){
//do something with the returned collection col
})
.catch(function(err){
//handle errors
console.log(err);
return callback(err);
});
}
Я называю это от моего сервера работает на локальный. Соединение работает, но потом сразу же после того, как я получаю ошибку: Unhandled отказ TypeError: db.getCollectionAsync не является функцией
Что я делаю неправильно? Это потому, что я делаю все это на сервере? Если да, то как работает соединение, которое также суффикс с Async работает? :-(
OMG !!! Страницы документации настолько похожи. Я смотрел на https://docs.mongodb.com/v2.6/reference/method/db.getCollection/ вместо http://mongodb.github.io/node-mongodb-native/2.2/api/Collection. html !!! Спасибо, что все работает сейчас :) – rstruck