Что такое middleware
Middleware (связующее программное обеспечение) — это программное обеспечение, который обеспечивает связь других программных компонентов. При этом под «программными компонентами» могут понимается очень разные вещи. Например, middleware можно назвать слои программного обеспечения для взаимодействий между клиентской части и базой данных, сетевых и прикладных программных компонентов.
Connect — это классический middleware framework, который содержит в себе множество инструментов, необходимых при разработке веб-приложений на Node.js. Он имеет такие инструменты, как средства для ведение логов, маршрутизация, работа с сессиями, файлами cookies, профайлер, сервер раздачи статического контента, программы для обработки http-запросов и много других связающих программ.
Использование Connect middleware фреймворка
Для установки Connect открываем терминал и выполнить следующую команду.
npm install connect
Давайте сначало сделаем что нибудь простое. Например, создадим HTTP-сервер с использованием Connect middleware.
const connect = require("connect"); const http = require("http"); const app = connect() .use((req, res, next) => { console.log('Hello 1'); next(); }) .use((req, res, next) => { console.log('Hello 2'); next(); }) .use((req, res, next) => { console.log('Hello 3'); res.end('END'); }); http.createServer(app).listen(8080);
После этого запускаем создании сервер с консоли — node index.js. Заходим в браузер и в адресной строки вводим localhost:8080. После этого в браузере мы увидим слово «END», а в консоли мы увидим следующее:
Hello 1
Hello 2
Hello 3
Давайте подробно рассмотрим написании код. В первых двух строках кода мы подключаемые модули connect и http. Потом создаем объект app — экземпляр приложения, использующего connect. Затем с помощью метода use мы связываем приложение с необходимыми «связующими программами» и со слушателем connect запросов. Связующие программы — это функции, которые на данном примере принимают три аргумента: request (запрос клиента), response (ответ сервера) и next (функция). При вызове функции next он нас выбрасывает из одной middleware в другую. Если бы мы не вызвали функцию next в первом middleware, то после выполнение первой middleware программа остановился, и мы в консоле увидели только «Hello 1».
Комментарии