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
- Console
- Buffer
- Файловая система
- Сохранить обучение продолжается.
- Цикл событий
- Глобальные объекты
- Как создать базовый проект Node.js
- Установите Node.js и NPM
- Создание файла
- Интерфейс командной строки
- Инициируйте свой файл
- Что нужно узнать далее
- Продолжить чтение о Node.js и JavaScript
Поднимите свои навыки 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
блокирует выполнение других строк кода до завершения чтения файла. Вот пример:
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!")
Пример синхронизации:
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: учебник по веб-разработке