Учебное пособие по Node.js - полное руководство для начинающих



В этом руководстве по Node.js рассказывается об основной архитектуре, работе и различных модулях Node.js. Также будет продемонстрирована практическая реализация Node.js и Express.js.

Если вы когда-нибудь слышали о Node.js, то, возможно, знаете, что это один из самых известных и мощных фреймворков JavaScript. С момента своего выпуска он продолжает удерживать свою мертвую хватку на рынке ИТ. Даже с появлением новых и ярких любить , , Meteor и т. Д., Популярность Node.js, кажется, никогда не прекращается. Интересно, почему? Что ж, с помощью этого руководства по Node.js я дам вам полное представление о нем. Итак, приготовьтесь влюбиться в Node.js.

В этом руководстве по Node.js я буду обсуждать следующие темы:





Что такое Node.js?

Node.js - это мощный фреймворк, разработанный на Механизм JavaScript V8 Chrome который компилирует JavaScript прямо в машинный код. Это облегченная структура, используемая для создания серверных веб-приложений и расширяющая API JavaScript, предлагая обычные серверные функции. Обычно он используется для разработки крупномасштабных приложений, особенно для сайтов потокового видео, одностраничных приложений и других веб-приложений. Node.js делает использование управляемой событиями неблокирующей модели ввода-вывода, что делает ее правильным выбором для приложений реального времени с интенсивным использованием данных.

Как и любые другие языки программирования, node.js использует пакеты и модули. Это библиотеки, которые содержат различные функции и импортируются из npm (диспетчера пакетов узлов) в наш код и используются в программах. Некоторые из основных функций, которые определяют Node.js, перечислены ниже:



Особенности Node.js

  1. Открытый исходный код
    Node.js - это лицензия MIT для фреймворка с открытым исходным кодом, которую поддерживает огромное сообщество. Его сообщество довольно активно и внесло свой вклад в добавление новых возможностей в приложения Node.js.
  2. Просто и быстро
    Поскольку Node.js построен на движке Google Chrome V8 JavaScript Engine, его библиотеки способны быстро выполнять код.
  3. Асинхронный
    Все библиотеки Node.js являются асинхронными, что означает, что серверы на основе Node.js никогда не ждут, пока API отправит ответ и перейдет к следующему API.
  4. Высокая масштабируемость
    Благодаря механизму событий Node.js хорошо масштабируется и помогает серверу в неблокирующем ответе.
  5. Одинарная резьба
    С помощью цикла событий Node.js может следовать однопоточной модели. Это позволяет одной программе обрабатывать несколько запросов.
  6. Без буферизации
    Одна из основных функций приложений Node.js заключается в том, что они никогда не буферизуют данные.
  7. Кроссплатформенность
    Node.js можно легко собрать и развернуть на различных платформах, таких как Windows, MAC и Linux.

Давайте продвинемся дальше и посмотрим, как развернуть фактический код в браузере. Но перед этим вам необходимо скачать и установить в своих системах. Вы можете сослаться на мою другую статью, чтобы узнать полную Процесс установки Node.js .

Итак, давайте перейдем к этому руководству по Node.js, где я расскажу о самом важном компоненте Node.js, то есть о npm.

NPM (диспетчер пакетов узлов)

NPM означает Node Package Manager, который, как следует из названия, является менеджером пакетов для пакетов / модулей Node.js. Начиная с версии Node 0.6.0. и далее npm был добавлен по умолчанию при установке узла. Это избавляет вас от необходимости явно устанавливать npm.



NPM в основном помогает двумя способами:

передавать файлы в экземпляр ec2 windows
  1. Предоставляет и размещает онлайн-репозитории для пакетов / модулей node.js, которые можно легко загрузить и использовать в наших проектах. Вы можете найти их здесь: npmjs.com
  2. Предоставляет утилиту командной строки для установки различных пакетов Node.js, управления версиями Node.js и зависимостями пакетов.

Но теперь вам должно быть интересно, что именно представляют собой эти модули и как они помогают нам в создании приложений Node.js. Что ж, в следующем разделе этого руководства по Node.js я дам вам полное представление о модулях Node.js.

Модули Node.js

Модули в Node.js представляют различные функции, которые объединены в один или несколько файлов JS. Эти модули имеют уникальный контекст, поэтому они никогда не мешают другим модулям и не загрязняют их.

Эти модули обеспечивают возможность повторного использования кода и упрощают его использование. Node.js в основном предоставляет три типа модулей:

  1. Основные модули
  2. Локальные модули
  3. Сторонние модули

Основной модуль

Поскольку Node.js очень легкий framework, основные модули объединяют в себе абсолютный минимум функциональности. Эти модули обычно загружаются, когда процесс Node начинает свое выполнение. Все, что вам нужно сделать, это импортировать эти основные модули, чтобы использовать их в своем коде.

Ниже я перечислил несколько важных модулей ядра.

Основной модуль Описание
http Содержит классы, методы и события, необходимые для создания HTTP-сервера Node.js.
url Содержит методы для разрешения и анализа URL-адресов в Node
Строка запроса Содержит методы для работы со строкой запроса узла
дорожка Содержит методы для работы с путями к файлам
фс Содержит классы, методы и события для работы с файловым вводом-выводом
Полезный Содержит служебные функции, которые могут быть полезны программистам

Вы можете загрузить свой основной модуль, используя приведенный ниже код:

var module = require ('имя_модуля')

Теперь посмотрим, что такое «локальные модули».

Локальные модули

Локальные модули 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 = require ('./ Local_module.js') myLogModule.name ('Edureka') myLogModule.domain ('Education')

Теперь вы можете выполнить эти файлы, используя команду ниже:

узел application.js

Позвольте мне теперь показать вам, что такое внешние модули.

Внешние модули

Вы можете использовать внешний или 3rdпартийные модули, только загрузив их через NPM. Эти модули обычно разрабатываются другими разработчиками и могут использоваться бесплатно. Некоторые из лучших внешних модулей - это express, react, gulp, mongoose, mocha и т. Д.

Глобальная загрузка сторонних модулей:

npm install --g

Включите файл модуля в основной файл приложения:

npm install --save

Файл JSON

В файл package.json в Node.js - это сердце всего приложения. По сути, это файл манифеста, содержащий метаданные проекта. Таким образом, понимание этого файла и работа с ним становятся очень важными для успешной разработки проекта Node.

Файл package.json обычно состоит из метаданных приложения, которые далее подразделяются на две категории:

  1. Определение свойств метаданных: Он состоит из таких свойств, как название проекта, текущая версия модуля, лицензия, автор проекта, описание проекта и т. Д.
  1. Запись прямо в файл: Вы можете напрямую записать необходимую информацию в файл package.json и включить ее в свой проект.

К настоящему времени вы уже ознакомились с различными компонентами приложения Node JS. В следующем разделе этого руководства по Node.js я поделюсь некоторыми основами Node Js, чтобы мы могли начать с практических занятий.

Основы Node.js

Поскольку Node.js является фреймворком JavaScript, он использует синтаксис JavaScript. Если вы хотите подробно изучить JavaScript, вы можете обратиться к этому . А пока я расскажу вам об основах Node.js, например:

Типы данных

Как и любой другой язык программирования, Node.js имеет различные типы данных, которые далее подразделяются на примитивные и непримитивные типы данных.

Примитивные типы данных:

  1. Строка
  2. Число
  3. Булево
  4. Значение NULL
  5. Неопределенный

Непримитивные типы данных:

  1. Объект
  2. Дата
  3. Массив

Переменные

Переменная - это сущности, которые содержат значения, которые могут изменяться в ходе выполнения программы. Чтобы создать переменную в Node.js, вам нужно использовать зарезервированное ключевое слово var. Вам не нужно назначать тип данных, так как компилятор выберет его автоматически.

Синтаксис:

var varName = значение

Операторы

Node.js поддерживает следующие операторы:

Тип оператора Операторы
Арифметика +, -, /, *,%, ++, -
Присвоение =, + =, - =, * =, / =,% =
Условный знак равно
Сравнение ==, === ,! = ,! ==,>,> =,<, <=,
Логический &&, || ,!
Побитовое &, |, ^, ~,<>, >>>

Функции

Функции в Node.js - это блок кода, который имеет имя и написан для решения конкретной задачи. Вам нужно использовать функцию ключевого слова, чтобы создать его. Функция обычно представляет собой двухэтапный процесс. Первый определяет функцию, а второй вызывает ее. Ниже приведен синтаксис создания и вызова функции:

Пример:

что такое хеш-карта и хеш-таблица в Java
// Определение функции function display_Name (firstName, lastName) {alert ('Hello' + firstName + '' + lastName)} // Вызов функции display_Name ('Park', 'Jimin')

Объекты

Объект - это непримитивный тип данных, который может содержать несколько значений с точки зрения свойств и методов. Объекты Node.js являются автономными объектами, так как нет понятия класса. Вы можете создать объект двумя способами:

  1. Использование литерала объекта
  2. Использование конструктора объектов

Пример:

// объект со свойствами и методом var employee = {// properties firstName: 'Minho', lastName: 'Choi', age: 35, salary: 50000, // method getFullName: function () {return this.firstName + '' + this.lastName}}

Файловая система

Для доступа к физической файловой системе Node.js использует фс модуль, который в основном заботится обо всех асинхронных и синхронных операциях ввода-вывода файлов. Этот модуль импортируется с помощью следующей команды:

var fs = require ('fs')

Вот некоторые из общих применений модулей файловой системы:

  • Читать файлы
    1. 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)
  • Создавать файлы
    1. appendFile ()
    2. открыто()
    3. writeFile ()
  • Обновить файлы
    1. fs.appendFile ()
    2. fs.writeFile ()
  • Удалить файлы
    1. fs.unlink ()
  • Переименовать файлы
    1. fs.rename ()

Итак, с помощью этих команд вы можете в значительной степени выполнять все необходимые операции с вашими файлами. Давайте перейдем к этому руководству по Node.js и посмотрим, что такое события и как они обрабатываются в Node.js.

События

Как я уже упоминал, приложения Node.js однопоточные и управляются событиями. Node.js поддерживает параллелизм, поскольку он управляется событиями, и поэтому использует такие концепции, как события и обратные вызовы. Вызов функции async помогает Node.js поддерживать параллелизм во всем приложении.

По сути, в приложении Node.js есть основной цикл, который ожидает и прослушивает события, и как только любое событие завершается, он немедленно инициирует функцию обратного вызова.

На диаграмме ниже показано, как события управляются в Node.js.

Модель потока - Учебное пособие по Node.js - Edureka

Здесь вы должны отметить одну вещь: хотя события похожи на функции обратного вызова, разница заключается в их функциональности. Когда асинхронная функция возвращает свои результаты, вызываются обратные вызовы, с другой стороны, обработка событий полностью работает по шаблону наблюдателя. А в Node.js методы, которые прослушивают события, называются наблюдателями. В тот момент, когда событие запускается, его функция прослушивателя автоматически начинает выполняться. Модули событий и класс EventEmitter предоставляют несколько встроенных событий, которые используются для привязки событий к прослушивателям событий. Ниже я записал для этого синтаксис.

Привязка события к прослушивателю событий

// Импорт модуля событий var my_Events = require ('events') // Создаем объект eventEmitter var my_EveEmitter = new my_Events.EventEmitter ()

Привязка обработчика событий к событию

// Связывание события и обработчика событий my_EveEmitter.on ('eventName', eventHandler)

Запуск события

// Запуск события my_EveEmitter.emit ('eventName')

Теперь давайте попробуем реализовать то, что я обсуждал в этом разделе о событиях Node.js.В приведенном ниже коде показано простое представление выполнения события в Node.js.

var emitter = require ('events'). EventEmitter function 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 ( info) {console.log ('Запуск процесса для' + info)}) it.on ('AfterProcess', function (info) {console.log ('Завершение обработки для' + info)

В следующем разделе этого руководства по Node.js я расскажу вам об одном из наиболее важных модулей Node.js, который называется HTTP-модулем.

Модуль HTTP

Обычно Node.js используется для разработки серверных приложений. Но с помощью модуля вы можете легко создавать веб-серверы, которые могут отвечать на запросы клиентов. Таким образом, он также называется веб-модулем и предоставляет такие модули, как HTTP и запрос, которые облегчают Node.js обработку запросов сервера.

Вы можете легко включить этот модуль в свое приложение Node.js, просто написав следующий код:

расширяется и реализуется вместе в java
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 следует архитектуре модель-представление-контроллер (MVC)
  • Обеспечивает интеграцию с такими базами данных, как MongoDB, Redis, MySQL.
  • Определяет промежуточное ПО для обработки ошибок
  • Упрощает настройку и настройку приложения.

Благодаря всем этим функциям Express берет на себя ответственность за серверную часть стека MEAN. Mean Stack - это программный стек JavaScript с открытым исходным кодом, который используется для создания динамических веб-сайтов и веб-приложений. Вот, ЗНАЧИТЬ означает M ongoDB, ЯВЛЯЕТСЯ xpress.js, К ngularJS и N ode.js.

Давайте теперь рассмотрим простой пример, чтобы понять, как Express.js работает с Node.js, чтобы облегчить нашу работу. Но прежде чем вы начнете работать с Express.js, вам необходимо установить его в своей системе.

Чтобы установить Express.js глобально, вы можете использовать следующую команду:

npm install -g express

Или, если вы хотите установить его локально в папку своего проекта, вам необходимо выполнить следующую команду:

npm install express - сохранить

Поскольку мы закончили со всеми приготовлениями, давайте перейдем непосредственно к практической реализации. Здесь я покажу простое приложение для аутентификации пользователей с использованием Node.js и Express.js.

Учебное пособие по Node.js Пошаговая разработка приложений с помощью Express.js

Для этого нам потребуются следующие файлы:

  • package.json
  • script.js
  • взгляды
    • index.jade
    • login.jade
    • secure.jade
    • несанкционированный. нефрит
    • добро пожаловать. нефрит
  • lib
    • routes.js

Итак, начнем с package.json .

{'author': 'Edureka', 'name': 'Express_Demo', 'description': 'Экспресс с Node.js', 'версия': '0.0.0', 'scripts': {'start': 'node script.js '},' Engine ': {' node ':' ~ 0.4.12 '},' dependencies ': {' 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) function checkAuth (req, res, next) {console.log ('checkAuth' + req.url) // не обслуживает / не защищает тех, кто не вошел в систему if (req.url = == '/ secure' && (! req.session ||! req.session.authenticated)) {res.render ('unauthorized', {status: 403}) return} next ()} app.use (flash () ) app.use (cookieParser ()) app.use (express.session ({secret: 'example'})) 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, в которую вы будете добавлять файлы нефрита, которые будут отвечать за различные просмотры страниц. Первый файл представления, который вам нужно создать, это index.jade .

!!! 5 html (lang = 'en') head title Пример аутентификации пользователя body h1 center Демонстрация аутентификации с использованием 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 Войдите в этот пример экспресс-аутентификации 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 (for =' password ') Ввод пароля (type =' password ', name =' password ', class =' ​​form-control ', id =' exampleInputPassword1 ', placeholder = 'Password', style = 'width: 400px') p center Submit - каждое сообщение во флэш-памяти h4 (style = 'color: red') # {message}

Следующим шагом будет создание добро пожаловать. нефрит .

!!! 5 html (lang = 'en') head title Пример аутентификации пользователя body h1 center Добро пожаловать в учебное пособие по Edureka!

Затем создайте secure.jade файл.

!!! 5 html (lang = 'en') head title Пример экспресс-аутентификации body h1 center Привет, безопасный пользователь. p Перейдите к ul li: a (href = '/ secure') Защищенное содержимое li: a (href = '/ welcome') Страница приветствия li: a (href = '/ logout') Выйти

Теперь создайте несанкционированный. нефрит файл.

!!! 5 html (lang = 'en') head title Пример аутентификации пользователя body h1 center Unauthorized p Вы не имеете права просматривать эту страницу. p Пожалуйста ' продолжать

Теперь вам нужно создать папку и назвать ее lib . Теперь создайте route.js файл, который отобразит все страницы.

var util = require ('util') module.exports = function (app) {app.get ('/', function (req, res, next) {res.render ('index')}) app.get (' / welcome ', function (req, res, next) {res.render (' welcome ')}) 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) {// здесь вы можете выполнить поиск в базе данных или что-то более масштабируемое if (req.body.username && req.body.username === 'user' && req.body.password && req.body.password === 'pass') {req.session.authenticated = true res.redirect ('/ secure')} else {req.flash ('error', 'Имя пользователя и пароль неверны') res. redirect ('/ login')}}) app.get ('/ logout', function (req, res, next) {удалить req.session.authenticated res.redirect ('/')})}

Теперь, если вы хотите выполнить этот код самостоятельно, вы можете скачать его отсюда: Учебник по Node.js в формате PDF .

На этом мы подошли к концу этого руководства по Node.js. Я надеюсь, что смог объяснить концепции Node.js с нуля.

Если вы нашли этот «Учебник по Node.js ' соответствующие, проверить от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев этого руководства по Node.js, и мы свяжемся с вами.