В този урок ще проучим рамката на Express. Тази рамка е изградена по такъв начин, че да действа като минимална и гъвкава рамка за уеб приложения на Node.js, предоставяйки стабилен набор от функции за изграждане на едно и много страници и хибридно уеб приложение.
В този урок ще научите -
- Какво е Express.js?
- Инсталиране и използване на Express
- Какво представляват маршрутите?
- Примерен уеб сървър, използващ express.js
Какво е Express.js?
Express.js е сървърна рамка за уеб приложения на Node js, която е специално проектирана за изграждане на еднолични, многостранични и хибридни уеб приложения.
Той се превърна в стандартната сървърна рамка за node.js. Express е основната част на нещо, известно като стека MEAN.
MEAN е безплатен JavaScript софтуер с отворен код за изграждане на динамични уеб сайтове и уеб приложения, който има следните компоненти;
1) MongoDB - Стандартната база данни NoSQL
2) Express.js - Рамката за уеб приложения по подразбиране
3) Angular.js - JavaScript MVC рамката, използвана за уеб приложения
4) Node.js - Рамка, използвана за мащабируеми сървърни и мрежови приложения.
Рамката Express.js улеснява много разработването на приложение, което може да се използва за обработка на множество типове заявки като заявките GET, PUT и POST и DELETE.
Инсталиране и използване на Express
Express се инсталира чрез Node Package Manager. Това може да стане чрез изпълнение на следния ред в командния ред
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', за да се даде възможност за изпращане на съдържание обратно към уеб страницата.
- След това използваме функцията Listen to, за да накараме нашето сървърно приложение да слуша клиентски заявки на порт № 3000. Тук можете да посочите всеки наличен порт.
Ако командата се изпълни успешно, след стартиране на вашия код в браузъра ще се покаже следният изход.
Изход:
От изхода,
- Можете ясно да видите, че ако прегледаме URL адреса на localhost на порт 3000, ще видите низа „Hello World“, показан на страницата.
- Тъй като в нашия код споменахме специално за сървъра да слуша на порт № 3000, ние можем да видим изхода, когато преглеждаме този URL.
Какво представляват маршрутите?
Маршрутизацията определя начина, по който дадено приложение отговаря на клиентска заявка до определена крайна точка.
Например, клиент може да направи GET, POST, PUT или DELETE http заявка за различни URL адреси, като тези, показани по-долу;
http://localhost:3000/Bookshttp://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 маршрута като
- Маршрут A / Node, който ще покаже низа "Урок за възел", ако се осъществи достъп до този маршрут
- A / Ъглов маршрут, който ще покаже низа "Урок за ъглови", ако има достъп до този маршрут
- Маршрут по подразбиране / който ще покаже низа „Добре дошли в уроци за 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 адреса на Node.
Функцията има 2 параметъра.
- Основният параметър, който ще използваме, е параметърът 'res', който може да се използва за изпращане на информация обратно на клиента.
- Параметърът 'req' съдържа информация за направената заявка. Понякога допълнителни параметри могат да бъдат изпратени като част от отправената заявка и следователно параметърът „req“ може да се използва за намиране на допълнителните изпращани параметри.
- Използваме функцията за изпращане, за да изпратим низа „Урок за възел“ обратно на клиента, ако е избран маршрута на възела.
- Тук дефинираме маршрут, ако в браузъра е избран URL http: // localhost: 3000 / Angular . Към маршрута ние прикачваме функция за обратно извикване, която ще бъде извикана, когато преглеждаме Angular URL.
- Използваме функцията за изпращане, за да изпратим низа „Урок за Angular“ обратно на клиента, ако е избран Angular маршрут.
- Това е маршрутът по подразбиране, който се избира, когато човек преглежда маршрута на приложението - http: // localhost: 3000 . Когато е избран маршрута по подразбиране, на клиента ще бъде изпратено съобщението "Добре дошли в уроци за Guru99".
Ако командата се изпълни успешно, след стартиране на вашия код в браузъра ще се покаже следният изход.
Изход:
От изхода,
- Можете ясно да видите, че ако прегледаме URL адреса на localhost на порт 3000, ще видите низа „Добре дошли в уроци за Guru99“, показан на страницата.
- Тъй като в нашия код споменахме, че URL адресът ни по подразбиране ще показва това съобщение.
От изхода,
- Можете да видите, че ако URL адресът е бил променен на / Node, ще бъде избран съответният маршрут на Node и ще се покаже низът "Tutorial On Node".
От изхода,
- Можете да видите, че ако URL адресът е бил променен на / Angular, ще бъде избран съответният маршрут на Node и ще се покаже низът "Tutorial On Angular".
Примерен уеб сървър, използващ express.js
От горния ни пример видяхме как можем да решим какъв изход да покажем въз основа на маршрутизация. Този вид маршрутизация е това, което се използва в повечето съвременни уеб приложения. Другата част от уеб сървъра е свързана с използването на шаблони в Node js.
Когато създавате бързи Node приложения в движение, лесен и бърз начин е да използвате шаблони за приложението. На пазара има много рамки за изработване на шаблони. В нашия случай ще вземем за пример нефритната рамка за шаблониране.
Jade се инсталира чрез Node Package manager. Това може да стане чрез изпълнение на следния ред в командния ред
npm инсталиране на нефрит
Горната команда изисква от мениджъра на пакети Node да изтегли необходимите нефритни модули и да ги инсталира съответно.
ЗАБЕЛЕЖКА: В последната версия на Node jade е остарял. Вместо това използвайте мопс.
Нека използваме нашия новоинсталиран фреймър за нефрит и да създадем някои основни шаблони.
Стъпка 1) Първата стъпка е да създадете шаблон за нефрит. Създайте файл, наречен index.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() {});
Обяснение на кода:
- Първото нещо, което трябва да посочите в приложението, е "view engine", който ще се използва за изобразяване на шаблоните. Тъй като ще използваме нефрит за изобразяване на нашите шаблони, ние уточняваме това съответно.
- Функцията за изобразяване се използва за изобразяване на уеб страница. В нашия пример ние изобразяваме шаблона (index.jade), който е създаден по-рано.
- Предаваме стойностите на „Guru99“ и „Welcome“ съответно на параметрите „title“ и „message“. Тези стойности ще бъдат заменени с параметрите „заглавие“ и „съобщение“, декларирани в шаблона index.jade.
Ако командата се изпълни успешно, след стартиране на вашия код в браузъра ще се покаже следният изход.
Изход:
От изхода,
- Можем да видим, че заглавието на страницата е настроено на „Guru99“, а заглавката на страницата е настроена на „Добре дошли“.
- Това се дължи на нефритния шаблон, който се извиква в нашето node js приложение.
Обобщение
- Експресната рамка е най-често използваната рамка, използвана за разработване на Node js приложения. Експресната рамка е изградена върху рамката node.js и помага за бързо проследяване на разработването на сървърно-базирани приложения.
- Маршрутите се използват за пренасочване на потребителите към различни части на уеб приложенията въз основа на отправената заявка. Отговорът за всеки маршрут може да варира в зависимост от това какво трябва да се покаже на потребителя.
- Шаблоните могат да се използват за инжектиране на съдържание по ефективен начин. Jade е един от най-популярните механизми за шаблониране, използван в приложенията Node.js.