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

Phần mềm trung gian Mongoose pre.save () async không hoạt động như mong đợi

Bạn đang sử dụng chức năng gọi lại phần mềm trung gian song song (với cả nextdone ), nhưng bạn không đặt cờ song song trong schema.pre vì vậy nó sử dụng các quy tắc nối tiếp.

Vì vậy, hãy bao gồm cờ song song trong lệnh gọi của bạn:

schema.pre("save", true, function(next, done) { ...

Hoặc chuyển sang kiểu gọi lại phần mềm trung gian nối tiếp nếu đó là tất cả những gì bạn cần:

schema.pre("save", function(next) {
    var self = this;

    model.findOne({email : this.email}, 'email', function(err, results) {
        if(err) {
            next(err);
        } else if(results) {
            console.warn('results', results);
            self.invalidate("email", "email must be unique");
            next(new Error("email must be unique"));
        } else {
            next();
        }
    });
});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MONGODB [DEBUG] cursor.refresh () cho con trỏ 7078636577051629992

  2. Xử lý thời gian chờ với Node.js và mongodb

  3. Lỗi MongoDb với php 7 trên Xampp CodeIgniter

  4. Không muốn bắt đầu mongod bằng `sudo mongod`

  5. Sự kết hợp của nhiều nút mongoose nodejs duy nhất của cột