Ответы пользователя по тегу Express.js
  • Как возможно реализовать пагинацию поддокументов в mongodb через mongoose в express?

    @foterio
    MongoDB - документо-ориентированая база данных. Как вы храните объект так она вам его и возвращает.
    В вашем случае, я бы хранил только последние events на одну page в самом пользователе User, а когда нужно еще, то запрашивал уже остальные events из отдельной коллекции events с нужными skip и limit (заминусом тех events, которые вы уже показали из User.events).
    При добавлении нового Event в events, вы затем возьмете последние, например, 20 events с помощью skip и limit, и затем обновите поле User.events новыми последними 20-ю событиями.
    Это будет более-менее правильный подход в случае MongoDB.
    Если же у Вас много остальных связей и таких же полей, то стоит задуматься, а правильно ли выбрана база данных, и может подойдет реляционные типа Postgres, MySQL.
    Ответ написан
    Комментировать
  • Как в node.js express настроить параллельную работу?

    @foterio
    На тех вводных данных, которые Вы предоставили, я предлагаю следующее решение: использовать пакет node-cron

    Создаем отдельное приложение NodeJS, которое будет заниматься нашей задачей.

    const cron = require('node-cron');
    
    cron.schedule('* * * * *', () => {
      // Тут размещаете любые функции, которые хотите выполнять
      console.log('running a task');
    });


    Там где вот эти звездочки "* * * * *" - это и есть расписание, примеры из документации:
    "* * * * *" - работает каждую минуту (текущий пример кода выполняется каждую минуту"
    "0 0 * * *" - работает ежедневно в полночь
    "* 10,14 * * *" - работает ежедневно в 10:00 и 14:00

    Более подробно в документации тут https://github.com/node-cron/node-cron

    Само NodeJS приложение можно запускать разными способами, например, через PM2
    Ответ написан
    Комментировать