Express JS - запуск промежуточного программного обеспечения, только приложение запускается впервые - PullRequest
0 голосов
/ 15 октября 2018

У меня есть приложение Express JS, созданное из Express Generator.

Мне нужно запустить промежуточное ПО для загрузки некоторых постоянных данных из серверной базы данных, только приложение запускается.

Мое предположениезаключается в том, что добавление промежуточного программного обеспечения в app.use в app.js не будет хорошей идеей, поскольку оно запускает каждый круг req и res, и это ухудшает производительность.

Как этого достичь?

1 Ответ

0 голосов
/ 15 октября 2018

Я бы подошел к этому, вероятно, создав новый файл с единственной функцией, которая возвращает эти данные + переменную, которая хранит кэшированную версию.

Например:

// MyThing.js
let cachedData;

const loadData = () => {

 // Load data for the first time

};

const getData = () => {

  if (!cachedData) loadData();

};

module.exports = {
  getData,
  loadData
};

Теперь, если вам когда-нибудь понадобится получить эти данные где-либо еще, вы можете сделать что-то вроде:

// Some-other-file.js
const { getData } = require('./MyThing.js'):

console.log(getData());

Несколько вещей, о которых следует помнить:

  • Мои названия оченьплохо, потому что я не знаю точно, что вы хотите загрузить.
  • Если загрузка этих данных основана на асинхронной операции, такой как сетевой вызов или запрос к базе данных, убедитесь, что это все функции async.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...