Мой вопрос: каждый раз, когда пользователь запрашивает страницу с Express (домашняя страница, страница входа и т. Д. c), Express затем запускает весь код в приложении. js СНОВА ? Требование всех файлов et c. Похоже на огромное количество накладных расходов?
Нет. Код верхнего уровня в app.js
запускается один раз во время запуска сервера. Этот код загружает зависимости модуля, создает объект Express app
, затем регистрирует на нем обработчики маршрута и затем запускает сервер http.
Обработчик маршрута, который соответствует входящему запросу http, будет вызываться каждый раз, когда приходит соответствующий входящий запрос, но будет вызван только тот обработчик запроса и любое соответствующее промежуточное программное обеспечение. Приложение Express и все обработчики маршрутов инициализируются только один раз.
Ваш код в node.js отличается от некоторых других сред тем, что ваш код и все его маршруты инициализируются один раз во время запуска сервера и этого сервера Затем объект продолжает работать, готовый выставить каждый входящий запрос и перенаправить его в соответствующие обработчики запросов. Точно так же любое состояние модуля, установленное вами в node.js, доступно и для всех будущих запросов.
Таким образом, когда пользователь переходит по URL-адресу /login
, только обработчик запроса express для этой страницы (и любой настроенный промежуточное программное обеспечение). Другие маршруты просто ждут входящего запроса, который соответствует их конфигурации маршрута.