Будет ли AWS кэшировать модули Node.js после их загрузки? - PullRequest
0 голосов
/ 26 сентября 2018

Я искал примеры кода приложений, разработанных с использованием Serverless Framework и Nodejs.Я наткнулся на следующий пример.

https://github.com/hammerspacecouk/tubealert.co.uk/blob/master/handler.js

Из уникального обработчика они загружают модуль с именем DI.js.

https://github.com/hammerspacecouk/tubealert.co.uk/blob/master/src/DI.js

Этот модуль фактически загружает всезависимости модуля для приложения.

Так как это работает?

Каждый раз, когда вызывается «POST: / подписка», он вызывает обработчик «подписка: (evt, ctx, cb) => {}», который загружает все модули, определенные в DI.js?

Следовательно, лучше загружать все модули в один прием или загружать модули для каждого обработчика по мере необходимости?

1 Ответ

0 голосов
/ 26 сентября 2018

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

Но это установка без сервера , предназначенная для работы на AWSЛямбда или подобное.Это означает, что обработчик загружается в память для одного запроса, и после его завершения экземпляр узла завершается.Загруженные модули некуда кешировать.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...