Что такое Node.js? Введение в среду выполнения JavaScript для новичков

Node.js — это кроссплатформенная среда выполнения JavaScript с открытым исходным кодом, которая выполняет код JavaScript вне веб-браузера. Node.js — это популярный легкий веб-фреймворк для начинающих, который используется многими крупными компаниями, такими как Netflix и Uber.

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

Node. js — важный инструмент для понимания любого разработчика JavaScript. Итак, сегодня мы познакомим вас с Node.js и покажем, как начать работу над проектом.

Сегодня мы рассмотрим:

  • Что такое Node.js?
  • Основы Node.js
  • Цикл событий Node.js
  • Начать работу с проектом
  • Что узнать дальше

Поднимите свои навыки JavaScript на следующий уровень.

Изучите внутреннее устройство и основы Node.js. К концу этого курса у вас будет востребованный навык, который можно будет добавить в свое резюме.

Изучите Node.js: полный курс для начинающих

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

Node.js — это открытый, перекрестный среда выполнения JavaScript платформы, используемая для выполнения кода JavaScript вне веб-браузера.

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

Node.js позволяет нам используйте JavaScript везде и в любом браузере, включая MacOS, Linux и Windows. Когда мы говорим везде, мы имеем в виду интерфейсную часть, промежуточное программное обеспечение и серверную часть. Таким образом, Node.js является частью некоторых очень популярных стеков веб-разработки, таких как стек MERN, стек MEVN и стек MEAN.

Существует ряд характеристик, которые делают Node.js тем, чем он является:

  • Google Chrome V8 JavaScript Engine: Эта среда выполнения построена на движке среды выполнения JavaScript Google Chrome V8. Точно так же, как виртуальная машина Java переводит байт-код, движок JavaScript Chrome V8 принимает JavaScript и делает его читаемым.
  • Модули/пакеты: узел. js имеет npm, диспетчер пакетов узлов с библиотекой из более чем 350 000 пакетов, которые помогут эффективно и легко запустить ваш проект или приложение.
  • Event Driven, Single- Модель потокового ввода-вывода: JavaScript полагается на действия пользователя или события для запуска. В большинстве случаев код выполняется синхронно. Серверные запросы и другие подобные асинхронные задачи полагаются на систему обещаний или функций async/await для обработки этих входных и выходных данных.

Основы Node.js

Теперь, когда мы знаете, что такое Node.js, давайте изучим основы этого инструмента.

Console

console — это модуль, предоставляемый Node.js, который похож на консоль JavaScript в браузере, когда вы проверяете веб-страницу. В консоли есть методы, которые мы можем использовать для целей отладки.

  • console.log () : часто используется для журналирования некоторого рода вывода.
  • console.warn () : явным образом выводит предупреждение на консоль.
  • console .error () : явным образом выводит на консоль сообщение об ошибке. Вы можете зарегистрировать ошибку как строку или как объект. Если регистрируется как новая Error () , трассировка будет включена как часть сообщения.
  • console.trace () : регистрирует обратную трассировку при возникновении ошибки в вашем коде. Указывает номер строки и номер столбца файла, в котором, вероятно, произошла ошибка.

Buffer

По сути, тег Buffer class в Node.js — это временное хранилище файловых систем. Из-за его низкоуровневой природы, как веб-разработчики, мы редко используем класс Buffer напрямую. Основная цель этого класса — выделить память.

Давайте взглянем на несколько методов, которые предоставляет класс Buffer.

 const buf1 = Buffer.alloc (10); console.log (buf1);  const buf2 = Buffer.alloc (5, 15); console.log (buf2); const buf3 = Buffer.allocUnsafe (10); console.log (buf3); buf3.fill (1); console.log (buf3);  buf2.write ("abcedf"); console.log (buf2); const buf4 = Buffer.from ([265, 6.5, -255, '7']); console.log (buf4); const buf5 = Buffer.from  ('Привет, мир'); console.log (buf5); console.log (buf5.toString ()); 

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

Модуль файловой системы (fs) позволяет нам взаимодействовать с файлами в Node.js. Существуют синхронные и асинхронные методы, которые можно использовать для чтения или записи в файл с помощью модуля fs.. В отличие от использования консоли или класса Buffer, нам нужно импортировать модуль fs в файл, который мы хотели бы использовать, чтобы заставить его работать.

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

Пример асинхронности:

Асинхронный характер Метод readFile не блокирует выполнение других функций или строк кода.

Однако синхронный метод readFileSync блокирует выполнение других строк кода до завершения чтения файла. Вот пример:

index.js
data.txt
 const fs = require ('fs') fs.readFile ('data.txt', 'utf-8', (err, data) => {if (err) {console.error  (err) return} let array = data.split (' n')//реквизитами являются id, first_name, last_name, email, пол и ip_address let mapped = array.map (person => {let new_person = person.split (  ','); вернуть новый объект ({id: new_person [0], first_name: new_person [1], last_name: new_person [2], email: new_person [3], пол: new_person [4], ip: new_person [5]  ]})}); console.log (сопоставлено)});  console.log ("Hit!") 

Пример синхронизации:

index.js
data.txt
 const fs = require ('fs') try {const data = fs.readFileSync ('data.txt', 'utf-8') let array = data.split (' n')// реквизитами являются id, first_name, last_name, email, пол и ip_address let mapped = array.map (person => {let new_person = person.split (','); return new Object ({id: new_person [0], first_name:  новое_персонал [1], фамилия: новое_персонал [2], электронная почта: новое_персонал [3], пол: новое_персонал [4], IP: новое_персонал [5]})});  console.log (сопоставлено)} catch (err) {console.error (err)} console.log ("Hit!") 

Попробуйте разместить console.log («Hit!») после функции, чтобы увидеть, когда консоль действительно регистрируется.. Есть ли разница между двумя функциями? Что это такое?

Функция readFile запустит функцию, а затем сразу перейдет к остальной части кода, прежде чем функция завершится и распечатает содержимое нашего множество. Итак, вы должны увидеть что-то вроде:

  Hit!  [{id: '1', first_name: 'Annabell', last_name: 'Cicconetti', электронная почта: 'acicconetti0@example.com', пол: 'Female', ip: '219.207.16.2'} и т. д.]  

Напротив, console.log («Hit!») не запускается до тех пор, пока не будет readFileSync функция завершена:

  [... {id: '37', first_name: 'Arnoldo', last_name: 'Eakly', email: 'aeakly10@live.com'  , пол: 'Male', ip: '189.110.238.26'}, {id: '38', first_name: 'Janis', last_name: 'Didball', электронная почта: 'jdidball11@shinystat.com', пол: 'Female'  , ip: '105.74.199.165'}] Hit!  

Запись в файлы выполняется очень похожим образом, но функции называются writeFile () и writeFileSync () .

В Node.js работать с файлами довольно просто с помощью модуля fs.

Сохранить обучение продолжается.

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

Изучите Node.js: полный курс для начинающих

Цикл событий

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

Эти функции, называемые прослушивателями событий, являются частью общего пути, называемого циклом событий. Возьмем этот пример:

 const EventEmitter = require ('события');  const emitter = новый EventEmitter ();  const handleEvent = (str) => {console.log (`================ $ {str}`);  console.log («handleEvent запущен! Произошло событие!»);  console.log ("конец события")} emitter.on ('событие загрузки', () => handleEvent ("загрузка")); emitter.on ('событие приветствия', () => handleEvent ("привет"  )); emitter.emit ('событие загрузки'); эмиттер. emit ('hello event') 

В этом примере кода мы импортируем модуль событий. Затем мы создаем новый EventEmitter и назначаем его эмиттеру переменной. В этом конкретном примере мы создали функцию handleEvent , которая будет служить функцией обратного вызова, которая будет console.log некоторые вещи.

EventEmitter имеет несколько методов, которые мы можем использовать. Один из методов, который запускается при генерации события, — это функция EventEmitter.on () .

Этот конкретный метод срабатывает при генерации события. Первый аргумент, переданный в функцию, — это имя события, а второй — функция обратного вызова, которая сообщает нам, как обрабатывать событие.

В этом конкретном примере генерируются два события. Когда мы запустим приведенный выше код, мы должны получить:

  ================ loadhandleEvent запущен!  Произошло событие! Конец события ================ hellohandleEvent запущен!  Произошло событие! End of eventtrue  

Метод emit запускает метод on, который затем вызывает функцию обратного вызова handleEvent .

Глобальные объекты

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

  • Объект console используется для печати в stdout и stderr .
  • Таймеры, такие как setImmediate , setInterval и setTimeout также являются глобальными.
  • Объект process также является глобальным.

В браузере область верхнего уровня — это глобальная область. Но в Node.js область верхнего уровня не является глобальной.

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

 console.log (глобальный) 

Как создать базовый проект Node.js

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

Если вы хотите узнать, как создать приложение Node.js, см. Раздел «Образовательный» для начинающих. конечно.

Установите Node.js и NPM

Сначала вам нужно зайти на сайт Node.js и скачать файлы.

Следуйте инструкциям по установке и перезагрузите компьютер для достижения наилучших результатов.

Другой способ установить Node.js — использовать диспетчер пакетов.

Затем проверьте, что он работает, распечатав версию с помощью следующей команды:

 > node -v  

Вы также должны протестировать npm, распечатав версию, используя следующую команду:

 > npm -v  

Создание файла

После правильной установки Node.js создайте файл Node.js. В этом примере мы назвали его «first.js». Затем мы добавляем следующий код и сохраняем файл на вашем компьютере следующим образом: C: Users Your Name first.js

   var http = require ('http'); http.createServer (function (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('Hello World!  ');}). listen (8080);  

Этот код, по сути, сообщает компьютеру напечатать «Hello World!» при доступе через порт 8080.

Интерфейс командной строки

Файлы Node.js должны запускаться в программе «Интерфейс командной строки» вашего компьютера. Перейдите в папку, содержащую файл «first.js».

  C:  Users  Your Name> _  

Инициируйте свой файл

Затем этот файл должен быть инициирован Node.js. Сделайте это, запустив интерфейс командной строки, написав n ode first.js и нажав Enter:

  C:  Users  Your Name  > node myfirst.js  

Замечательно! Теперь ваш компьютер настроен как сервер, поэтому, когда вы подключаетесь к компьютеру через порт 8080, вы слышите «Hello World!». сообщение будет напечатано.

Чтобы увидеть это в реальном времени, откройте браузер и введите: http://localhost:8080

Что нужно узнать далее

Поздравляем! Вы знаете основы Node.js, его основные инструменты и знаете, как запустить файл Node.js. Следующие шаги — освоить модули Node.js, HTTP-модули, файловую систему и зависимости NPM.

Следующим хорошим шагом будет изучение следующих концепций Node.js:

  • Node.js и ОС
  • Node.js REPL
  • Пакеты
  • Как опубликовать пакет
  • Как создать работающее приложение
  • Node.js и MySQL

Чтобы начать с этих для продвинутых тем, ознакомьтесь с учебным курсом Learn Node.js: The Complete Course For Beginners , который охватывает все эти темы и более подробно. Вы познакомитесь с продвинутыми концепциями, такими как модули, события и пакеты.. В конце этого курса вы познакомитесь с Node.js и создадите собственное веб-приложение для доставки еды.

Удачного обучения!

Продолжить чтение о Node.js и JavaScript

  • Node.js против React.js: что выбрать для вашего проекта веб-приложения
  • Рекомендации по защите ваших приложений на Node.js.
  • Изучите ООП на JavaScript: учебник по веб-разработке
Оцените статью
nanomode.ru
Добавить комментарий