MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Node.js hứa hẹn với mongoskin

Bạn có thể quảng bá toàn bộ mô-đun như vậy với bluebird:

var Promise = require("bluebird");
var mongoskin = require("mongoskin");
Object.keys(mongoskin).forEach(function(key) {
  var value = mongoskin[key];
  if (typeof value === "function") {
    Promise.promisifyAll(value);
    Promise.promisifyAll(value.prototype);
  }
});
Promise.promisifyAll(mongoskin);

Việc này chỉ cần được thực hiện ở một nơi cho một lần trong ứng dụng của bạn, không phải ở bất kỳ đâu trong mã ứng dụng của bạn.

Sau đó, bạn chỉ cần sử dụng các phương thức bình thường ngoại trừ với hậu tố Async và không chuyển các lệnh gọi lại:

req.db.collection('users').find().toArrayAsync()
  .then(function(doc) {
    if (doc) {
      return req.db.collection('users').find().toArrayAsync();
    }
  })
  .then(function(doc) {
    if (doc) {
      return req.db.collection('users').find().toArrayAsync();
    }
  })
  .then(function(doc) {
    if (doc) {
      return req.db.collection('users').find().toArrayAsync();
    }
  });

Vì vậy, một lần nữa, nếu bạn gọi một hàm như

foo(a, b, c, function(err, result) {
    if (err) return console.log(err);
    //Code
});

Phiên bản trả về lời hứa được gọi là:

fooAsync(a, b, c).then(...)

(Các lỗi chưa xuất hiện sẽ tự động được ghi lại, do đó bạn không cần phải kiểm tra chúng nếu bạn chỉ định ghi lại nó)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách nhanh nhất để sao chép một bộ sưu tập trong cùng một cơ sở dữ liệu là gì?

  2. Thanh tìm kiếm với các đề xuất với nodejs và mongodb

  3. Thực hiện liên hợp trong mongoDB

  4. Mongoose đổi tên bộ sưu tập

  5. Chiến lược đăng ký / xuất bản Meteor cho các bộ sưu tập phía máy khách duy nhất