Tôi biết rằng trình điều khiển Nút cho Mongo có thể là promisified sử dụng các thư viện bên ngoài. Tôi đã tò mò muốn xem những lời hứa ES6 có thể được sử dụng với MongoClient.connect
, vì vậy tôi cố gắng này (sử dụng Babel 5.8.23 để transpile):Sử dụng các lời hứa ES6 gốc với MongoDB
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);
}
);
Đầu ra là {Promise <pending>}
. Bất cứ điều gì để làm với con trỏ dường như mang lại một kết quả tương tự. Có cách nào để có được xung quanh này hay tôi sủa cây sai hoàn toàn?
Chỉnh sửa: phiên bản nút 4.1.0.
Tốt đau buồn. Cảm ơn, dường như tôi đã nhìn chằm chằm vào nó quá lâu! –
Tất cả chúng ta đều có thời gian :) – loganfsmyth
IME, không cần 'err => {console.log (err}' - chỉ cần đặt 'console.log' trong tham số lỗi' .then' – Alnitak