Помнят ли NodeJS и Hapi данные между вызовами API?

Я создал небольшое приложение с NodeJS и Hapi. Есть некоторые данные, которые должны храниться в памяти до тех пор, пока приложение работает. Например, наша компания ведет список «заблокированных слов» в базе данных.

Что я хочу:

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

Мой страх:

Если бы это было PHP-приложение, оно делало бы этот запрос к базе данных каждый раз при загрузке страницы. Я должен был бы использовать что-то вроде Memcache для хранения данных. В противном случае я буду злоупотреблять базой данных сотнями дополнительных звонков каждую минуту.

Мой идеал:

Если бы я мог использовать Java или Clojure, было бы тривиально легко загрузить данные при запуске и затем хранить их в памяти до тех пор, пока приложение работает.

Итак, за какой моделью следует NodeJS? PHP или Clojure?

0

Решение

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

Вы можете легко подтвердить это, объявив переменную, увеличивая ее каждый раз, когда запрос поступает в ваше приложение, и регистрируя результат:

let counter = 0;

const server = require('http').createServer((req, res) => {
counter++;

res.statusCode = 200;
res.end(counter.toString());

console.log(counter);
});

server.listen(3000);

Примечание. Этот пример будет увеличиваться в два раза при каждом запросе при использовании браузера, который запрашивает favicon,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]