MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Apakah findOne luwak pada model mengembalikan janji?

Karena findOne adalah tidak sinkron fungsi, salah satu cara untuk kembali darinya adalah melalui callback fungsi

module.exports.isAdmin = function(user_id, callback) {
  var params = {'roles': 'admin'};

  dao.findOne(params, function(err, user) {
    if (err) {
      logger.error(err);
      callback && callback(false);
    }
    if (_.indexOf(user.roles, 'admin') != -1) {
      logger.info("admin user: " + user._id);
      if (user._id == user_id)
          callback && callback(true);
    }
    callback && callback(true);
  });
};

isAdmin(userId, function(v) {
    console.log(v);
})

Cara lain adalah dengan mendapatkan Janji di findOne , seperti yang dikatakan dokumen ini, .exec() memberi Anda janji yang lengkap. Bahkan dengan Promise , untuk memenuhi kebutuhan Anda, hasilnya dapat dikembalikan melalui fungsi panggilan balik.

module.exports.isAdmin = function(user_id, callback) {
  var params = {'roles': 'admin'};

  var queryPromise = dao.findOne(params).exec();
  queryPromise.then(function(user) {
      if (_.indexOf(user.roles, 'admin') != -1) {
        logger.info("admin user: " + user._id);
        if (user._id == user_id)
          callback && callback(true);
      }
    }, function(err) {
      callback && callback(false);
  });
};



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Permintaan MongoDB untuk semua dokumen dengan bidang unik

  2. Kamus Upsert di MongoDb

  3. buat database aman di mongodb

  4. Metode meteor vs. aturan tolak/izinkan

  5. Kesalahan mongo-go-driver Kesalahan klien baru ClientOptions dalam argumen ke mongo.NewClient