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

Sử dụng bluebird cho mongoose, got .bind không phải là một hàm

Vấn đề bạn đang gặp phải là các truy vấn mongoose không trả lại các lời hứa chính thức đầy đủ - trích dẫn trực tiếp http:// mongoosejs.com/docs/promises.html (v4.7.6)

// A query is not a fully-fledged promise, but it does have a `.then()`.
query.then(function (doc) {
  // use doc
});

// `.exec()` gives you a fully-fledged promise
var promise = query.exec();
assert.ok(promise instanceof require('mpromise'));

Nói cách khác, then hàm là đường cú pháp và không phải là promise đó là lý do tại sao bind và các chức năng hứa hẹn khác không hoạt động.

Để làm cho nó hoạt động, bạn có thể kết thúc nó trong một lời hứa đầy đủ hoặc sử dụng exec chức năng như được đề xuất trong tài liệu




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để viết điều kiện khớp cho các giá trị mảng?

  2. Khung tổng hợp không thể sử dụng chỉ mục

  3. MongoDB-as-a-Service trong Tài khoản Amazon AWS của Chính bạn

  4. MongoDB nhóm lồng nhau?

  5. Tôi gặp lỗi khi triển khai ứng dụng Node.Js với mongoDB trên Elastic Beanstalk