Как Node обслуживает клиентские .js-файлы?

Например, допустим, мы пытаемся использовать socket.io.

В файле html, обслуживаемом клиентом, мы включаем следующее в файл.

 

Итак, два вопроса:

  1. Когда html-файл получает доступ к клиенту, он загружает ресурс socket.io.js (http: // localhost: 8080 / socket.io / socket.io.js) без запуска запросаHandler в server.js (у меня есть log для любого запроса, который попадает на localhost: 8080). Как этот ресурс загружается на клиент без запуска запросаHandler?

  2. Где Node находит ресурс socket.io.js, который требуется клиенту?

Предполагая, что вы используете один из основных примеров Socket.io, это связано с тем, что Socket.io переопределяет ваш дескриптор с его собственным и не будет запускать ваш обработчик, если запрос предназначен для чего-то, что управляет socket.io.

Когда вы вызываете .listen(app) или .listen(80) он настроит все обработчики, необходимые для обработки данных и обслуживает клиентский JS-файл.