Mongoのノードドライバは、外部ライブラリを使用してpromisifiedにすることができます。私はES6の約束はMongoClient.connect
で使用することができれば見て興味があったので、私は(transpileにバベル5.8.23を使用して)、これを試してみました:MongoDBでのネイティブES6の約束の使用
import MongoClient from 'mongodb';
function DbConnection({
host = 'localhost',
port = 27017,
database = 'foo'
}) {
return new Promise((resolve, reject) => {
MongoClient.connect(`mongodb://${host}:${port}/${database}`,
(err, db) => {
err ? reject(err) : resolve(db);
});
});
}
DbConnection({}).then(
db => {
let cursor = db.collection('bar').find();
console.log(cursor.count());
},
err => {
console.log(err);
}
);
出力が{Promise <pending>}
です。カーソルと関係するものは、同様の結果をもたらすようです。これを回避する方法はありますか、間違ったツリーを完全に吠えるのですか?
編集:ノードバージョン4.1.0。
やれやれ。ありがとう、明らかに私はそれをあまりにも長く注視してきました! –
私たちはすべてその時を持っています:) – loganfsmyth
IME、 'err => {console.log(err}')は必要ありません。 'console.log'を' .then'エラーパラメータ – Alnitak