Кратко
СкопированоNode.js — это способ запускать JavaScript-код не только в браузере. Приложения, которые чаще всего создаются на этой платформе, можно разделить на две категории:
- вспомогательные инструменты для клиентских приложений — системы сборки, распространения пакетов, серверы разработки, редакторы кода и системы статического анализа;
- серверные приложения — начиная от простых API и заканчивая огромными корпоративными программами.
Как пользоваться
СкопированоУстановите Node.js на свой компьютер. Теперь в терминале можно выполнить команду, которая выведет текущую версию платформы и докажет, что все установлено корректно:
node -v
node -v
Node.js позволяет исполнить любой JavaScript-файл. Создадим демо-файл script
:
const whereIAm = __dirname// __dirname — глобальная переменная, хранящая папку, в которой лежит файл скриптаconsole.log(`I am at ${whereIAm}`)
const whereIAm = __dirname // __dirname — глобальная переменная, хранящая папку, в которой лежит файл скрипта console.log(`I am at ${whereIAm}`)
Запустим его в терминале:
node script.js
node script.js
Как понять
СкопированоЗа выполнение JavaScript в браузере Google Chrome (и других браузерах основанных на Chromium — Edge, Яндекс.Браузер, Opera) отвечает движок V8, разработанный в Google. В 2009 году Райан Даль, в качестве эксперимента, создал платформу Node.js, которая использует V8 для выполнения JavaScript-кода вне браузера.
В среде Node.js у приложения нет доступа к стандартным браузерным API. Например, document
и window
недоступны, потому что код исполняется вне браузера. Никаких документов и окон в его контексте не существует.
Абсолютное большинство инструментов для JavaScript-разработки использует Node.js. Многие серверные приложения тоже используют её, в основном при серверном рендеринге клиентских приложений и создании API-гейтвеев.
API-гейтвей — сервис с удобным клиенту API, который сам не выполняет никакой работы, а только вызывает другие сервисы, чтобы получить данные или совершить операцию. Ценность таких сервисов в удобном для клиентского кода API.
Например, можно сделать простое приложение на Node.js, которое отвечает на все запросы одинаковым текстом. В первую очередь, для этого потребуется сторонний npm
-пакет:
npm init // инициализируем package.jsonnpm install express // добавим пакет для создания веб-приложений
npm init // инициализируем package.json npm install express // добавим пакет для создания веб-приложений
Теперь нужно создать файл с кодом приложения, назовём его server
:
// express — фреймворк для создания веб-приложенийconst express = require('express')// создаём express-приложениеconst app = express()// оно будет работать на определенном порту компьютераconst port = 3000// если отправить GET-запрос на /, то получим ответ 'Hello World!'app.get('/', (req, res) => { res.send('Hello World!')})// запускаем приложениеapp.listen(port, () => { console.log(`Приложение запущено на http://localhost:${port}`)})
// express — фреймворк для создания веб-приложений const express = require('express') // создаём express-приложение const app = express() // оно будет работать на определенном порту компьютера const port = 3000 // если отправить GET-запрос на /, то получим ответ 'Hello World!' app.get('/', (req, res) => { res.send('Hello World!') }) // запускаем приложение app.listen(port, () => { console.log(`Приложение запущено на http://localhost:${port}`) })
Все готово к запуску! Исполним файл командой:
node server.js
node server.js
Если в браузере перейти на http
, то можно увидеть ответ веб-сервера.
Особенности версионирования
СкопированоВерсии в Node.js подчиняются некоторым правилам в зависимости от мажорной версии. Это первое число из полной версии. Например, для Node.js 16.13.1 мажорной версией будет 16.
Нечётные версии (13, 15 и др.) являются экспериментальными. В них, как правило, появляются самые новые возможности, однако период поддержки таких версий всего полгода. Это важно, потому что в программах постоянно выявляются критичные ошибки или опасные уязвимости.
Чётные версии (14, 16 и др.) через полгода разработки переходят в стадию LTS (от английского long-term support, долгосрочная поддержка). Это означает, что в течение 12 месяцев будет вестись активная разработка, будут добавляться новые возможности и исправляться ошибки. По окончании этих 12 месяцев ещё 18 месяцев будут исправляться критичные ошибки и проблемы с безопасностью.
Таким образом, нечётные версии лучше не использовать, кроме случаев когда нужно попробовать новые возможности. В продакшене обязательно нужно использовать LTS версии — они наиболее стабильны и гарантируют, что 30 месяцев будут исправляться критичные уязвимости.
На практике
Скопированосоветует Скопировано
Часто система сборки проекта требует очень специфичной версии Node.js. Например, проект может собираться только на 10 версии. Чтобы не переустанавливать платформу каждый раз при смене проекта, был создан nvm
— Node Version Manager. Это небольшая консольная программа, которая позволяет легко выбирать версию Node.js и произвольно менять её.
С помощью nvm
можно установить любую версию, просто выполнив команду:
nvm install 10.10.0
nvm install 10.10.0
И изменить используемую версию в любой момент времени с помощью команды:
nvm 8.9.1
nvm 8.9.1