Ако някога сте чували за Node.js, тогава може да знаете, че това е една от най-изявените и мощни рамки на JavaScript. От пускането си на пазара той продължава да държи неподвижната си позиция на ИТ пазара. Дори с въвеждането на нови и живи като , , Meteor и др., Популярността на Node.js изглежда никога не спира. Чудите се защо? Е, с помощта на този урок за Node.js ще ви дам пълна представа за него. Така че, пригответе се да се влюбите в Node.js.
В този урок за Node.js ще обсъждам следните теми:
- Какво е Node.js?
- NPM (Node Package Manager)
- Модули Node.js
- JSON файл
- Основи на Node.js
- Файлова система
- Събития
- HTTP модул
- Express.js
- Урок за Node.js Разработка на приложения стъпка по стъпка с Express.js
Какво е Node.js?
Node.js е мощна рамка, разработена на JavaScript V8 двигател на Chrome който компилира JavaScript директно в родния машинен код. Това е лека рамка, използвана за създаване на сървърни уеб приложения и разширява JavaScript API, за да предлага обичайни сървърни функции. Обикновено се използва за широкомащабна разработка на приложения, особено за сайтове за видео стрийминг, приложения с една страница и други уеб приложения. Node.js прави използване на управляван от събития, неблокиращ I / O модел, което го прави правилен избор за приложенията в реално време с интензивно използване на данни.
Както всеки друг език за програмиране, node.js използва пакети и модули. Това са библиотеките, които съдържат различни функции и се импортират от npm (мениджър на пакети на възли) в нашия код и се използват в програмите. Някои от основните характеристики, които определят Node.js са изброени по-долу:
Характеристики на Node.js
- Отворен код
Node.js е MIT лиценз с отворен код, който се поддържа от огромна общност. Нейната общност е доста активна са допринесли за добавяне на нови възможности към приложенията Node.js. - Просто и бързо
Тъй като Node.js е изграден върху V8 JavaScript Engine на Google Chrome, неговите библиотеки могат да изпълняват бързо код. - Асинхронен
Всички библиотеки на Node.js са асинхронни, което означава, че сървърите, базирани на Node.js, никога не чакат API да изпрати обратно отговора и да премине към следващия API. - Висока скалируемост
Поради механизма на събитията Node.js е силно мащабируем и помага на сървъра в неблокиращ отговор. - Едноконци
С помощта на цикъл на събития Node.js е в състояние да следва еднонишковия модел. Това позволява на една програма да обработва множество заявки. - Без буфериране
Една от основните функционалности на приложенията Node.js е, че никога не буферира никакви данни. - Крос-платформа
Node.js може лесно да бъде изграден и внедрен на различни платформи като Windows, MAC и Linux.
Нека сега да продължим напред и да видим как да разположим действителния код в браузъра. Но преди това трябва да изтеглите и инсталирате във вашите системи. Можете да се обърнете към другата ми статия, за да знаете пълната Процес на инсталиране на Node.js .
И така, нека преминем по-нататък в този урок за Node.js, където ще говоря за най-важния компонент на Node.js, т.е. npm.
NPM (Node Package Manager)
NPM означава Node Package Manager, който, както подсказва името, е мениджър на пакети за пакети / модули Node.js. От Node версия 0.6.0. нататък, npm е добавен по подразбиране в инсталацията на възела. Това ви спестява от караницата с инсталирането на npm изрично.
NPM основно помага по два начина:
какво е регистратор в Java
- Предоставя и хоства онлайн хранилища за пакети / модули node.js, които могат лесно да бъдат изтеглени и използвани в нашите проекти. Можете да ги намерите тук: npmjs.com
- Предоставя помощната програма на командния ред, за да инсталира различни пакети Node.js, да управлява версиите на Node.js и зависимостите на пакетите.
Но сега трябва да се чудите какви точно са тези модули и как ни помагат при изграждането на приложенията Node.js. Е, в следващия раздел на този урок за Node.js ще ви дам пълна представа за модулите Node.js.
Модули Node.js
Модулите в Node.js представляват различни функционалности, обединени в единични или множество JS файлове. Тези модули имат уникален контекст, поради което те никога не пречат и не замърсяват обхвата на други модули.
Тези модули позволяват повторната употреба на кода и подобряват лекотата на използване. Node.js основно предлага три вида модули:
- Основни модули
- Локални модули
- Модули на трети страни
Основен модул
Тъй като Node.js е много лек Framework, основните модули обединяват абсолютния минимум функционалности. Тези модули обикновено се зареждат, когато процесът Node започне изпълнението си. Всичко, което трябва да направите, е да импортирате тези основни модули, за да ги използвате във вашия код.
По-долу изброих няколко от важните основни модули.
Основен модул | Описание |
http | Съдържа класове, методи и събития, необходими за създаване на Node.js HTTP сървър |
URL адрес | Съдържа методи за разрешаване и анализиране на URL в Node |
низ за заявки | Съдържа методи за справяне с низ за заявка на Node |
път | Съдържа методи за справяне с файлови пътища |
fs | Съдържа класове, методи и събития за работа с входни / изходни файлове |
Полезен | Съдържа полезни функции, които могат да бъдат полезни за програмистите |
Можете да заредите основния си модул, като използвате следния код:
var module = require ('module_name')
Нека сега видим какво представляват „локалните модули“.
Локални модули
Локалните модули на Node.js са персонализирани модули, които се създават локално от потребител / разработчик в приложението. Тези модули могат да включват различни функционалности, обединени в отделни файлове и папки, които могат лесно да бъдат разпространявани в общността Node.js с помощта на NPM.
Тези модули се зареждат по подобен начин на основните модули. Нека ви покажем как да го направите, като използвате основен пример.
Създайте вашия персонализиран / локален файл module.js
var detail = {name: function (name) {console.log ('Name:' + name)}, domain: function (domain) {console.log ('Domain:' + domain)}} module.exports = detail
Включете файла на модула в основния файл на приложението.
var myLogModule = изисква ('./ Local_module.js') myLogModule.name ('Edureka') myLogModule.domain ('Образование')
Сега можете да изпълните тези файлове, като използвате командата по-долу:
възел application.js
Позволете ми сега да ви покажа какво представляват външните модули.
Външни модули
Можете да използвате външния или 3rdпарти модули само като ги изтеглите чрез NPM. Тези модули обикновено се разработват от други разработчици и са безплатни за използване. Малко от най-добрите външни модули са експрес, реакция, глътка, мангуста, мока и др.
Глобално зареждане на модулите на трети страни:
npm инсталиране --g
Включете файла на модула в основния файл на приложението:
npm install --save
JSON файл
The файл package.json в Node.js е сърцето на цялото приложение. Фактически файлът на манифеста съдържа метаданните на проекта. По този начин разбирането и работата с този файл става много важно за успешното разработване на Node проект.
Файлът package.json обикновено се състои от метаданните на приложението, които допълнително са категоризирани в две категории:
- Идентифициране на свойствата на метаданните: Това се състои от свойства като името на проекта, текущата версия на модула, лиценза, автора на проекта, описанието на проекта и т.н.
- Пишете директно във файл: Можете директно да напишете необходимата информация във файла package.json и да я включите във вашия проект.
Досега вече сте се запознали с различните компоненти на приложението Node JS. В следващия раздел на този урок за Node.js ще споделя някои основи на Node Js, за да можем да започнем с ръцете.
Основи на Node.js
Тъй като Node.js е JavaScript рамка, той използва синтаксиса на JavaScript. Ако искате да научите подробно JavaScript, можете да се обърнете към него . Засега ще ви подготвя някои основи на Node.js като:
Типове данни
Както всеки друг език за програмиране, Node.js има различни типове данни, които допълнително се категоризират в примитивни и непримитивни типове данни.
Примитивните типове данни са:
- Струна
- Брой
- Булево
- Нула
- Неопределено
Непримитивните типове данни са:
- Обект
- Дата
- Масив
Променливи
Променливите са обекти, които съдържат стойности, които могат да варират по време на програмата. За да създадете променлива в Node.js, трябва да използвате запазена ключова дума var. Не е нужно да присвоявате тип данни, тъй като компилаторът автоматично ще го избере.
Синтаксис:
var varName = стойност
Оператори
Node.js поддържа следните оператори:
Тип оператор | Оператори |
Аритметика | +, -, /, *,%, ++, - |
Възлагане | =, + =, - =, * =, / =,% = |
Условна | =? |
Сравнение | ==, === ,! = ,! ==,>,> =,<, <=, |
Логично | &&, || ,! |
Побитово | &, |, ^, ~,<>, >>> |
Функции
Функциите в Node.js е блок от код, който има име и е написан за постигане на определена задача. Трябва да използвате функцията за ключови думи, за да я създадете. Функцията обикновено е двустепенен процес. Първият е дефинирането на функцията, а вторият е извикването му. По-долу е синтаксисът на създаване и извикване на функция:
Пример:
// Дефиниране на функция функция display_Name (firstName, lastName) {alert ('Hello' + firstName + '' + lastName)} // Извикване на функцията display_Name ('Park', 'Jimin')
Обекти
Обектът е непримитивен тип данни, който може да съдържа множество стойности по отношение на свойствата и методите. Обектите Node.js са самостоятелни обекти, тъй като няма концепция за клас. Можете да създадете обект по два начина:
- Използване на Object literal
- Използване на конструктор на обекти
Пример:
// обект със свойства и метод var worker = {// свойства firstName: 'Minho', lastName: 'Choi', възраст: 35, заплата: 50000, // метод getFullName: function () {return this.firstName + '' + this.lastName}}
Файлова система
За достъп до физическата файлова система Node.js използва fs модул, който основно се грижи за всички асинхронни и синхронни файлови I / O операции. Този модул се импортира с помощта на командата по-долу:
var fs = изисква ('fs')
Някои от основните приложения на модулите на файловата система са:
- Четене на файлове
- fs.readFile ()
var http = require ('http') var fs = require ('fs') http.createServer (function (req, res) {fs.readFile ('script.txt', function (err, data) {res.writeHead ( 200, {'Content-Type': 'text / html'}) res.write (data) res.end ()})}). Listen (8080)
- Създаване на файлове
- appendFile ()
- отворен ()
- writeFile ()
- Актуализиране на файлове
- fs.appendFile ()
- fs.writeFile ()
- Изтрий файловете
- fs.unlink ()
- Преименувайте файлове
- fs.rename ()
Така че, с тези команди можете почти да извършите всички необходими операции с вашите файлове. Нека сега да продължим с този урок за Node.js и да видим какво представляват Събитията и как се обработват в Node.js.
Събития
Както вече споменах, приложенията на Node.js са с единична резба и се управляват от събития. Node.js поддържа паралелност, тъй като се управлява от събития и по този начин използва понятия като събития и обратно извикване. Извикванията на функцията async помагат на Node.js при поддържане на паралелност в цялото приложение.
По принцип в приложението Node.js има основен цикъл, който чака и слуша събития и след като всяко събитие е завършено, той незабавно инициира функция за обратно извикване.
По-долу диаграмата представя как се управляват събитията в Node.js.
mongodb създаване на потребител за база данни
Тук трябва да отбележите едно нещо, въпреки че събитията изглеждат подобни на функциите за обратно извикване, но разликата се крие в техните функционалности. Когато асинхронна функция връща резултатите си, обратно извикване се извиква, от друга страна обработката на събития напълно работи върху модела на наблюдателя. А в Node.js методите, които слушат събитията, се наричат наблюдатели. В момента, в който дадено събитие се задейства, неговата функция слушател автоматично започва да се изпълнява. Модулите за събития и класът EventEmitter предоставят множество вградени събития, които се използват за свързване на събития със слушатели на събития. По-долу съм записал синтаксиса за това.
Обвързване на събитие със слушател на събитие
// Модул за импортиране на събития var my_Events = require ('events') // Създаване на обект eventEmitter var my_EveEmitter = нов my_Events.EventEmitter ()
Обвързване на манипулатора на събития към събитие
// Обвързващо събитие и манипулатор на събития my_EveEmitter.on ('eventName', eventHandler)
Изстрелване на събитие
// Изстрелване на събитие my_EveEmitter.emit ('eventName')
Сега нека се опитаме да приложим нещата, които съм обсъждал в този раздел Node.js Събитие.Кодът по-долу показва просто представяне на изпълнението на събитие в Node.js.
var emitter = require ('events'). EventEmitter функция iterateProcessor (num) {var emt = new emitter () setTimeout (function () {for (var i = 1 i & lt = num i ++) {emt.emit ('BeforeProcess' , i) console.log ('Обработка на итерация:' + i) emt.emit ('AfterProcess', i)}}, 5000) return emt} var it = iterateProcessor (5) it.on ('BeforeProcess', function ( информация) {console.log ('Стартиране на процеса за' + информация)}) it.on ('AfterProcess', функция (информация) {console.log ('Завършване на обработката за' + информация)
В следващия раздел на този урок за Node.js ще ви дам информация за един от най-важните модули на Node.js, наречен HTTP модул.
HTTP модул
Като цяло Node.js се използва за разработване на сървърно-базирани приложения. Но използвайки модула, можете лесно да създадете уеб сървъри, които да отговарят на клиентските заявки. По този начин той се отнася и до Web Module и предоставя модули като HTTP и заявка, които улесняват Node.js при обработката на заявките на сървъра.
Можете лесно да включите този модул във вашето приложение Node.js само като напишете кода по-долу:
var http = require ('http')
По-долу съм написал код, който показва как е разработен уеб сървър в Node.js.
// извикване на http библиотека var http = require ('http') var url = require ('url') // създаване на сървър var server = http.createServer (function (req, res) {// настройка на заглавката на съдържанието res.writeHead ( 200, ('Content-Type', 'text / html')) var q = url.parse (req.url, true) .query var txt = q.year + '' + q.month // изпрати низ към отговор res.end (txt)}) // задаване на 8082 като сървър за прослушване на порт server.listen (8082)
В следващия раздел на този урок за Node.js ще говоря за Express.js, който е силно използван за разработване на уеб приложения от сървъра.
Express.js
Express.js е рамка, изградена върху Node.js, която улеснява управлението на потока от данни между сървъра и маршрутите в сървърните приложения. Това е лека и гъвкава рамка, която предоставя широка гама от функции, необходими за мрежата, както и за разработване на мобилни приложения.
Express.js е разработен върху модула за мидълуер на Node.js, наречен свържете . Модулът за свързване допълнително използва http модул за комуникация с Node.js. По този начин, ако работите с някой от базираните на свързване базирани модули за мидълуер, тогава можете лесно да се интегрирате с Express.js.
Не, само това, няколко от основните предимства на Express.js са:
- Улеснява разработването на уеб приложения
- Помага при изграждането на мобилни и уеб приложения от едностранични, многостранични и хибридни типове
- Express предлага два шаблониращи двигателя, а именно Jade и EJS
- Express следва архитектурата на Model-View-Controller (MVC)
- Прави интеграция с бази данни като MongoDB, Redis, MySQL
- Определя грешка при обработка на мидълуер
- Опростява лесното конфигуриране и персонализиране за приложението.
С всички тези функции Express поема отговорност за бекенда част в стека MEAN. Mean Stack е софтуерният стек с отворен код JavaScript, който се използва за изграждане на динамични уеб сайтове и уеб приложения. Тук, ОЗНАЧАВА означава М ongoDB, Е xpress.js, ДА СЕ ngularJS и н ode.js.
Нека сега видим прост пример, за да разберем как Express.js работи с Node.js, за да улесни нашата работа. Но преди да започнете да работите с Express.js, трябва да го инсталирате във вашата система.
За да инсталирате Express.js глобално, можете да използвате командата по-долу:
npm инсталиране -g express
Или, ако искате да го инсталирате локално в папката на вашия проект, трябва да изпълните командата по-долу:
npm инсталирайте express --save
Тъй като приключихме с цялата подготовка, нека сега преминем директно към практическото изпълнение. Тук ще покажа просто приложение за удостоверяване на потребителя, използващо Node.js и Express.js.
Урок за Node.js Разработка на приложения стъпка по стъпка с Express.js
За това ще ни трябват файлове по-долу:
- package.json
- script.js
- мнения
- index.jade
- login.jade
- secure.jade
- неоторизиран.jade
- добре дошли.jade
- lib
- routes.js
И така, да започнем с package.json .
как да направя екранна снимка в селен -
{'author': 'Edureka', 'name': 'Express_Demo', 'description': 'Express with Node.js', 'version': '0.0.0', 'scripts': {'start': 'node script.js '},' двигатели ': {' възел ':' ~ 0.4.12 '},' зависимости ': {' connect-flash ':' ^ 0.1.1 ',' cookie-parser ':' ^ 1.4 .3 ',' express ':' ^ 3.21.2 ',' jade ':' ^ 0.20.3 ',' req-flash ':' 0.0.3 '},' devDependencies ': {}}
След това трябва да създадете script.js .
var express = require ('express') var http = require ('http') var port = 8999 var app = express () const flash = require ('connect-flash') var cookieParser = require ('cookie-parser') var server = http.createServer (app) функция checkAuth (req, res, next) {console.log ('checkAuth' + req.url) // не се обслужва / защитава за невлезлите ако (req.url = == '/ secure' && (! req.session ||! req.session.authenticated)) {res.render ('неоторизиран', {status: 403}) return} следващ ()} app.use (flash () ) app.use (cookieParser ()) app.use (express.session ({секрет: 'пример'}))) app.use (express.bodyParser ()) app.use (checkAuth) app.use (app.router) app.set ('view engine', 'jade') app.set ('view options', {layout: false}) require ('./ lib / routes.js') (app) app.listen (port) console .log ('Слушане на възел на порт% s', порт)
Сега създайте папка с име view, под която ще добавяте jade файловете, които ще отговарят за различни изгледи на страници. Първият файл с изглед, който трябва да създадете, е index.jade .
!!! 5 html (lang = 'en') заглавие на потребителя Удостоверяване на потребителя Пример за тяло h1 център Удостоверяване Демонстрация с помощта на Express h3 Отидете до h4 ul li: a (href = '/ secure') Защитено съдържание li: a (href = '/ welcome') Начална страница li: a (href = '/ logout') Изход
Сега създайте login.jade файл.
!!! 5 html (lang = 'en') head title Пример за експресно удостоверяване body h1 center Вход в този център за пример за експресно удостоверяване p Използване потребител за потребителското име и мине за паролата. form (method = 'post') p label (for = 'username') Въвеждане на имейл адрес (type = 'text', name = 'username', class = 'form-control', id = 'exampleInputPassword1', placeholder = ' Имейл ', style =' width: 400px ') p center label (за =' password ') Въвеждане на парола (type =' password ', name =' password ', class =' form-control ', id =' exampleInputPassword1 ', placeholder = 'Password', style = 'width: 400px') p center Submit - всяко съобщение във флаш h4 (style = 'color: red') # {message}
Следващата стъпка е да създадете добре дошли.jade .
!!! 5 html (lang = 'en') head title Присвояване на потребителя Пример body h1 center Добре дошли в урока Edureka!
След това създайте secure.jade файл.
!!! 5 html (lang = 'en') заглавие на главата Експресно удостоверяване Пример body h1 center Здравейте, защитен потребител. p Придвижете се до ul li: a (href = '/ secure') Защитено съдържание li: a (href = '/ welcome') Поздравителна страница li: a (href = '/ logout') Изход
Сега създайте неоторизиран.jade файл.
!!! 5 html (lang = 'en') заглавие на главата Пример за удостоверяване на потребител body h1 center Неупълномощен p Не сте упълномощени да преглеждате тази страница. p Моля ' продължавам
Сега трябва да създадете папка и да я наименувате lib . Сега създайте a route.js файл, който ще картографира всички страници.
var util = require ('util') module.exports = function (app) {app.get ('/', function (req, res, next) {res.render ('index')}) app.get (' / добре дошъл ', функция (req, res, следващ) {res.render (' добре дошъл ')}) app.get (' / secure ', function (req, res, next) {res.render (' secure ')} ) app.get ('/ login', function (req, res, next) {res.render ('login', {flash: req.flash ()})}) app.post ('/ login', function ( req, res, next) {// може да искате да направите търсене на база данни или нещо по-мащабируемо тук, ако (req.body.username && req.body.username === 'потребител' && req.body.password && req.body.password === 'pass') {req.session.authenticated = true res.redirect ('/ secure')} else {req.flash ('грешка', 'Потребителското име и паролата са неправилни') res. redirect ('/ login')}}) app.get ('/ logout', function (req, res, next) {delete req.session.authenticated res.redirect ('/')})}
Сега, ако искате да изпълните този код сами, можете да го изтеглите от тук: Урок за Node.js PDF .
С това стигаме до края на този урок за Node.js. Надявам се, че успях да обясня концепциите на Node.js от самото начало.
Ако сте намерили този „Урок за Node.js ”Подходящо, вижте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят.
Имате въпрос към нас? Моля, споменете го в раздела за коментари в този урок за Node.js и ние ще се свържем с вас.