MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Refaktoryzacja kodu oprogramowania pośredniego projektu NodeJS z wykorzystaniem tras, kontrolerów i modeli

Są 2 rzeczy, które w połączeniu sprawią, że kod będzie znacznie ładniejszy:

  • Collection.find zwraca obietnicę .
  • Aby poczekać na rozwiązanie obietnicy w nowoczesnym JavaScript, użyj await

Możesz użyć następującego kodu:

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
  }
});

Lub, aby pobrać wyniki równolegle, a nie szeregowo, użyj 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
  }
});

Możesz użyć tego samego rodzaju wzorca, gdy masz do wykonania wiele wywołań asynchronicznych - nie ma potrzeby brzydkiego zagnieżdżania nawiasów i wcięć.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zaktualizuj zagnieżdżone poddokumenty w MongoDB za pomocą arrayFilters

  2. Przekazywanie danych MongoDB do .ejs za pomocą node.js

  3. Jak tworzyć i używać Enum w Mongoose?

  4. Model zmieniający środowisko wykonawcze za pomocą mongodb/mongoid

  5. Zmiana hasła w MongoDB dla istniejącego użytkownika