Учебное пособие по Node.js Express FrameWork – изучите за 10 минут
В этом уроке мы изучим среду Express. Эта платформа построена таким образом, что она действует как минимальная и гибкая среда веб-приложений Node.js, предоставляя надежный набор функций для создания одностраничных, многостраничных и гибридных веб-приложений.
Что такое Express.js?
Express.js — это платформа сервера веб-приложений Node js, специально разработанная для создания одностраничных, многостраничных и гибридных веб-приложений.
Он стал стандартной серверной платформой для node.js. Express — это серверная часть того, что известно как стек MEAN.
MEAN — это бесплатная программа с открытым исходным кодом. JavaСценарий стек программного обеспечения для создания динамических веб-сайтов и веб-приложений, который включает следующие компоненты:
1) MongoDB – Стандартная база данных NoSQL
2) Экспресс.js – Платформа веб-приложений по умолчанию
3) Угловой.js - JavaСкриптовый MVC-фреймворк, используемый для веб-приложений
4) Node.js – Платформа, используемая для масштабируемых серверных и сетевых приложений.
Платформа Express.js позволяет очень легко разработать приложение, которое можно использовать для обработки нескольких типов запросов, таких как запросы GET, PUT, POST и DELETE.
Установка и использование Express
Express устанавливается через диспетчер пакетов Node. Это можно сделать, выполнив следующую строку в командной строке
npm установить экспресс
Приведенная выше команда просит менеджер пакетов Node загрузить необходимые экспресс-модули и установить их соответствующим образом.
Давайте воспользуемся нашей недавно установленной платформой Express и создадим простое приложение «Hello World».
Наше приложение создаст простой серверный модуль, который будет прослушивать порт номер 3000. В нашем примере, если через браузер делается запрос на этот номер порта, тогда серверное приложение отправит клиенту ответ «Hello World». .
var express=require('express'); var app=express(); app.get('/',function(req,res) { res.send('Hello World!'); }); var server=app.listen(3000,function() {});
Пояснение к коду:
- В нашей первой строке кода мы используем функцию require для включения «экспресс-модуля».
- Прежде чем мы сможем начать использовать экспресс-модуль, нам нужно создать из него объект.
- Здесь мы создаем функцию обратного вызова. Эта функция будет вызываться всякий раз, когда кто-либо просматривает корень нашего веб-приложения, которое http://localhost:3000 . Функция обратного вызова будет использоваться для отправки строки «Hello World» на веб-страницу.
- В функции обратного вызова мы отправляем строку «Hello World» обратно клиенту. Параметр «res» используется для отправки контента обратно на веб-страницу. Этот параметр «res» предоставляется модулем «request», позволяющим отправлять контент обратно на веб-страницу.
- Затем мы используем функцию прослушивания, чтобы наше серверное приложение прослушивало запросы клиентов на порту № 3000. Здесь вы можете указать любой доступный порт.
Если команда выполнена успешно, при запуске кода в браузере будет отображен следующий вывод.
Вывод:
Из вывода,
- Вы можете ясно видеть, что если мы перейдем к URL-адресу локального хоста на порту 3000, вы увидите строку «Hello World», отображаемую на странице.
- Поскольку в нашем коде мы специально упомянули, что сервер прослушивает порт № 3000, мы можем просмотреть выходные данные при переходе по этому URL-адресу.
Что такое маршруты?
Маршрутизация определяет способ, которым приложение отвечает на запрос клиента к определенной конечной точке.
Например, клиент может выполнить http-запрос GET, POST, PUT или DELETE для различных URL-адресов, таких как показанные ниже;
http://localhost:3000/Books http://localhost:3000/Students
В приведенном выше примере
- Если запрос GET делается для первого URL-адреса, то в идеале ответом должен быть список книг.
- Если запрос GET делается для второго URL-адреса, то в идеале ответом должен быть список студентов.
- Таким образом, в зависимости от URL-адреса, к которому осуществляется доступ, на веб-сервере будут вызываться различные функции и, соответственно, ответ будет отправлен клиенту. Это концепция маршрутизации.
Каждый маршрут может иметь одну или несколько функций-обработчиков, которые выполняются при совпадении маршрута.
Общий синтаксис маршрута показан ниже.
app.METHOD(PATH, HANDLER)
В которой,
1) приложение является экземпляром экспресс-модуля
2) METHOD — метод HTTP-запроса (GET, POST, PUT или DELETE).
3) PATH — путь на сервере.
4) HANDLER — это функция, выполняемая при совпадении маршрута.
Давайте рассмотрим пример того, как мы можем реализовать маршруты в экспрессе. В нашем примере будет создано 3 маршрута как
- Маршрут /Node, который будет отображать строку «Tutorial on Node» при доступе к этому маршруту.
- Маршрут /Angular, который будет отображать строку «Tutorial on Angular» при доступе к этому маршруту.
- Маршрут по умолчанию /, который будет отображать строку «Добро пожаловать в руководства Guru99».
Наш базовый код останется таким же, как и в предыдущих примерах. Приведенный ниже фрагмент представляет собой дополнение, демонстрирующее реализацию маршрутизации.
var express = require('express'); var app = express(); app.route('/Node').get(function(req,res) { res.send("Tutorial on Node"); }); app.route('/Angular').get(function(req,res) { res.send("Tutorial on Angular"); }); app.get('/',function(req,res){ res.send('Welcome to Guru99 Tutorials'); }));
Пояснение к коду:
- Здесь мы определяем маршрут, если URL-адрес http://localhost:3000/Node выбирается в браузере. К маршруту мы присоединяем функцию обратного вызова, которая будет вызываться при переходе по URL-адресу узла. Функция имеет 2 параметра.
- Основной параметр, который мы будем использовать, — это параметр «res», который можно использовать для отправки информации обратно клиенту.
- Параметр 'req' содержит информацию о сделанном запросе. Иногда дополнительные параметры могут быть отправлены как часть выполняемого запроса, и, следовательно, параметр «req» может использоваться для поиска отправляемых дополнительных параметров.
- Мы используем функцию отправки для отправки строки «Tutorial on Node» обратно клиенту, если выбран маршрут Node.
- Здесь мы определяем маршрут, если URL-адрес http://localhost:3000/Angular выбирается в браузере. К маршруту мы присоединяем функцию обратного вызова, которая будет вызываться при переходе по URL-адресу Angular.
- Мы используем функцию отправки для отправки строки «Учебное пособие по Angular» обратно клиенту, если выбран маршрут Angular.
- Это маршрут по умолчанию, который выбирается при переходе к маршруту приложения – http://localhost:3000. Когда выбран маршрут по умолчанию, клиенту будет отправлено сообщение «Добро пожаловать в Guru99 Tutorials».
Если команда выполнена успешно, при запуске кода в браузере будет отображен следующий вывод.
Вывод:
Из вывода,
- Вы можете ясно видеть, что если мы перейдем к URL-адресу локального хоста на порту 3000, вы увидите строку «Добро пожаловать в руководства Guru99», отображаемую на странице.
- Потому что в нашем коде мы упомянули, что наш URL-адрес по умолчанию будет отображать это сообщение.
Из вывода,
- Вы можете видеть, что если URL-адрес был изменен на /Node, будет выбран соответствующий маршрут узла и отобразится строка «Учебное пособие на узле».
Из вывода,
- Вы можете видеть, что если URL-адрес был изменен на /Angular, будет выбран соответствующий маршрут узла и отобразится строка «Tutorial On Angular».
Пример веб-сервера с использованием express.js
Из приведенного выше примера мы увидели, как мы можем решить, какой вывод отображать на основе маршрутизации. Этот вид маршрутизации используется в большинстве современных веб-приложений. Другая часть веб-сервера связана с использованием шаблонов в Node js.
При создании быстрых Node-приложений «на лету» простым и быстрым способом является использование шаблонов для приложения. На рынке доступно множество фреймворков для создания шаблонов. В нашем случае мы возьмем в качестве примера Jade-фреймворк для шаблонизации.
Jade устанавливается через менеджер пакетов Node. Это можно сделать, выполнив следующую строку в командной строке
нпм установить Джейд
Приведенная выше команда запрашивает менеджер пакетов Node загрузить необходимые модули jade и установить их соответствующим образом.
ПРИМЕЧАНИЕ: В последней версии Node jade объявлен устаревшим. Вместо этого используйте pug.
Давайте воспользуемся нашей недавно установленной Jade-инфраструктурой и создадим несколько базовых шаблонов.
Шаг 1) Первым шагом является создание нефритового шаблона. Создайте файл с именем index.jade и вставьте приведенный ниже код. Обязательно создайте файл в папке «views».
- Здесь мы указываем, что заголовок страницы будет изменен на любое значение, переданное при вызове этого шаблона.
- Мы также указываем, что текст в теге заголовка будет заменен на все, что передается в шаблоне jade.
var express=require('express'); var app=express(); app.set('view engine','jade'); app.get('/',function(req,res) { res.render('index', {title:'Guru99',message:'Welcome'}) }); var server=app.listen(3000,function() {});
Пояснение к коду:
- Первое, что нужно указать в приложении, — это «движок просмотра», который будет использоваться для рендеринга шаблонов. Поскольку мы собираемся использовать нефрит для рендеринга наших шаблонов, мы указываем это соответствующим образом.
- Функция рендеринга используется для рендеринга веб-страницы. В нашем примере мы визуализируем шаблон (index.jade), созданный ранее.
- Мы передаем значения «Guru99» и «Добро пожаловать» в параметры «заголовок» и «сообщение» соответственно. Эти значения будут заменены параметрами «title» и «message», объявленными в шаблоне index.jade.
Если команда выполнена успешно, при запуске кода в браузере будет отображен следующий вывод.
Вывод:
Из вывода,
- Мы видим, что для заголовка страницы установлено значение «Guru99», а для заголовка страницы — «Добро пожаловать».
- Это связано с шаблоном jade, который вызывается в нашем приложении node js.
Итого
- Express framework — наиболее распространенный фреймворк, используемый для разработки приложений Node js. Платформа Express построена на основе платформы node.js и помогает ускорить разработку серверных приложений.
- Маршруты используются для перенаправления пользователей в разные части веб-приложений в зависимости от сделанного запроса. Ответ для каждого маршрута может варьироваться в зависимости от того, что необходимо показать пользователю.
- Шаблоны можно использовать для эффективного внедрения контента. Jade — один из самых популярных шаблонизаторов, используемых в приложениях Node.js.