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

Memfaktorkan ulang kode middleware proyek NodeJS, menggunakan rute, pengontrol, dan model

Ada 2 hal yang jika digabungkan akan membuat kode lebih bagus:

  • Collection.find mengembalikan Janji .
  • Untuk menunggu Janji diselesaikan dalam Javascript modern, gunakan await

Anda dapat menggunakan kode berikut:

const Person= require('./models/person')
const Mortician = require('./models/mortician')
router.get('/', async (req, res, next) => {
  try {
    const persons = await Person.find({ pickedUp: false });
    const morticians = await Mortician.find({});
    res.render('pages/dashboard', {
      title: 'Dashboard',
      persons,
      morticians,
    });
  } catch(e) {
    // handle errors
  }
});

Atau, untuk mengambil hasil secara paralel daripada serial, gunakan Promise.all :

router.get('/', async (req, res, next) => {
  try {
    const [persons, morticians] = await Promise.all([
      Person.find({ pickedUp: false }),
      Mortician.find({})
    ]);
    res.render('pages/dashboard', {
      title: 'Dashboard',
      persons,
      morticians,
    });
  } catch(e) {
    // handle errors
  }
});

Anda dapat menggunakan jenis pola yang sama setiap kali Anda memiliki beberapa panggilan asinkron yang harus dilakukan - tidak perlu pemasangan dan lekukan braket yang jelek.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dapatkan nilai sebagai array elemen setelah $lookup

  2. Bisakah saya meminta MongoDB ObjectId berdasarkan tanggal?

  3. Permintaan Mongo $exists tidak mengembalikan dokumen yang benar

  4. $nin dengan $expr

  5. Dokumen yang disematkan vs referensi dalam model desain luwak?