Usage#
node [options] [V8 options] [script.js | -e "script" | - ] [arguments]
Please see the Command-line options document for more information.
Example#
An example of a web server written with Node.js which responds with
'Hello, World!':
Commands in this document start with $ or > to replicate how they would
appear in a user’s terminal. Do not include the $ and > characters. They are
there to show the start of each command.
Lines that don’t start with $ or > character show the output of the previous
command.
First, make sure to have downloaded and installed Node.js. See
Installing Node.js via package manager for further install information.
Now, create an empty project folder called projects, then navigate into it.
Linux and Mac:
mkdir ~/projects
cd ~/projects
Windows CMD:
mkdir %USERPROFILE%\projects
cd %USERPROFILE%\projects
Windows PowerShell:
mkdir $env:USERPROFILE\projects
cd $env:USERPROFILE\projects
Next, create a new source file in the projects
folder and call it hello-world.js.
Open hello-world.js in any preferred text editor and
paste in the following content:
const http = require('node:http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, World!\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
Save the file. Then, in the terminal window, to run the hello-world.js file,
enter:
node hello-world.js
Output like this should appear in the terminal:
Server running at http://127.0.0.1:3000/
Now, open any preferred web browser and visit http://127.0.0.1:3000.
If the browser displays the string Hello, World!, that indicates
the server is working.
Мы начинаем публикацию серии материалов, которые представляют собой поэтапный перевод руководства по Node.js для начинающих. А именно, в данном случае «начинающий» — это тот, кто обладает некоторыми познаниями в области браузерного JavaScript. Он слышал о том, что существует серверная платформа, программы для которой тоже пишут на JS, и хотел бы эту платформу освоить. Возможно, вы найдёте здесь что-то полезное для себя и в том случае, если уже знакомы с Node.js.
Кстати, в прошлом году у нас был похожий по масштабам проект, посвящённый bash-скриптам. Тогда мы, после публикации всех запланированных материалов, собрали их в виде PDF-файла. Так же планируется поступить и в этот раз.
Сегодня мы обсудим особенности Node.js, начнём знакомство с экосистемой этой платформы и напишем серверный «Hello World».
[Советуем почитать] Другие части цикла
Часть 1: Общие сведения и начало работы
Часть 2: JavaScript, V8, некоторые приёмы разработки
Часть 3: Хостинг, REPL, работа с консолью, модули
Часть 4: npm, файлы package.json и package-lock.json
Часть 5: npm и npx
Часть 6: цикл событий, стек вызовов, таймеры
Часть 7: асинхронное программирование
Часть 8: Руководство по Node.js, часть 8: протоколы HTTP и WebSocket
Часть 9: Руководство по Node.js, часть 9: работа с файловой системой
Часть 10: Руководство по Node.js, часть 10: стандартные модули, потоки, базы данных, NODE_ENV
Полная PDF-версия руководства по Node.js
Обзор Node.js
Node.js — это опенсорсная кроссплатформенная среда выполнения для JavaScript, которая работает на серверах. С момента выпуска этой платформы в 2009 году она стала чрезвычайно популярной и в наши дни играет весьма важную роль в области веб-разработки. Если считать показателем популярности число звёзд, которые собрал некий проект на GitHub, то Node.js, у которого более 50000 звёзд, это очень и очень популярный проект.
Платформа Node.js построена на базе JavaScript движка V8 от Google, который используется в браузере Google Chrome. Данная платформа, в основном, используется для создания веб-серверов, однако сфера её применения этим не ограничивается.
Рассмотрим основные особенности Node.js.
▍Скорость
Одной из основных привлекательных особенностей Node.js является скорость. JavaScript-код, выполняемый в среде Node.js, может быть в два раза быстрее, чем код, написанный на компилируемых языках, вроде C или Java, и на порядки быстрее интерпретируемых языков наподобие Python или Ruby. Причиной подобного является неблокирующая архитектура платформы, а конкретные результаты зависят от используемых тестов производительности, но, в целом, Node.js — это очень быстрая платформа.
▍Простота
Платформа Node.js проста в освоении и использовании. На самом деле, она прямо-таки очень проста, особенно это заметно в сравнении с некоторыми другими серверными платформами.
▍JavaScript
В среде Node.js выполняется код, написанный на JavaScript. Это означает, что миллионы фронтенд-разработчиков, которые уже пользуются JavaScript в браузере, могут писать и серверный, и клиентский код на одном и том же языке программирования без необходимости изучать совершенно новый инструмент для перехода к серверной разработке.
В браузере и на сервере используются одинаковые концепции языка. Кроме того, в Node.js можно оперативно переходить на использование новых стандартов ECMAScript по мере их реализации на платформе. Для этого не нужно ждать до тех пор, пока пользователи обновят браузеры, так как Node.js — это серверная среда, которую полностью контролирует разработчик. В результате новые возможности языка оказываются доступными при установке поддерживающей их версии Node.js.
▍Движок V8
В основе Node.js, помимо других решений, лежит опенсорсный JavaScript-движок V8 от Google, применяемый в браузере Google Chrome и в других браузерах. Это означает, что Node.js пользуется наработками тысяч инженеров, которые сделали среду выполнения JavaScript Chrome невероятно быстрой и продолжают работать в направлении совершенствования V8.
▍Асинхронность
В традиционных языках программирования (C, Java, Python, PHP) все инструкции, по умолчанию, являются блокирующими, если только разработчик явным образом не позаботится об асинхронном выполнении кода. В результате если, например, в такой среде, произвести сетевой запрос для загрузки некоего JSON-кода, выполнение потока, из которого сделан запрос, будет приостановлено до тех пор, пока не завершится получение и обработка ответа.
JavaScript значительно упрощает написание асинхронного и неблокирующего кода с использованием единственного потока, функций обратного вызова (коллбэков) и подхода к разработке, основанной на событиях. Каждый раз, когда нам нужно выполнить тяжёлую операцию, мы передаём соответствующему механизму коллбэк, который будет вызван сразу после завершения этой операции. В результате, для того чтобы программа продолжила работу, ждать результатов выполнения подобных операций не нужно.
Подобный механизм возник в браузерах. Мы не можем позволить себе ждать, скажем, окончания выполнения AJAX-запроса, не имея при этом возможности реагировать на действия пользователя, например, на щелчки по кнопкам. Для того чтобы пользователям было удобно работать с веб-страницами, всё, и загрузка данных из сети, и обработка нажатия на кнопки, должно происходить одновременно, в режиме реального времени.
Если вы создавали когда-нибудь обработчик события нажатия на кнопку, то вы уже пользовались методиками асинхронного программирования.
Асинхронные механизмы позволяют единственному Node.js-серверу одновременно обрабатывать тысячи подключений, не нагружая при этом программиста задачами по управлению потоками и по организации параллельного выполнения кода. Подобные вещи часто являются источниками ошибок.
Node.js предоставляет разработчику неблокирующие базовые механизмы ввода вывода, и, в целом, библиотеки, использующиеся в среде Node.js, написаны с использованием неблокирующих парадигм. Это делает блокирующее поведение кода скорее исключением, чем нормой.
Когда Node.js нужно выполнить операцию ввода-вывода, вроде загрузки данных из сети, доступа к базе данных или к файловой системе, вместо того, чтобы заблокировать ожиданием результатов такой операции главный поток, Node.js инициирует её выполнение и продолжает заниматься другими делами до тех пор, пока результаты выполнения этой операции не будут получены.
▍Библиотеки
Благодаря простоте и удобству работы с менеджером пакетов для Node.js, который называется npm, экосистема Node.js прямо-таки процветает. Сейчас в реестре npm имеется более полумиллиона опенсорсных пакетов, которые может свободно использовать любой Node.js-разработчик.
Рассмотрев некоторые основные особенности платформы Node.js, опробуем её в действии. Начнём с установки.
Установка Node.js
Node.js можно устанавливать различными способами, которые мы сейчас рассмотрим.
Так, официальные установочные пакеты для всех основных платформ можно найти здесь.
Существует ещё один весьма удобный способ установки Node.js, который заключается в использовании менеджера пакетов, имеющегося в операционной системе. Например, менеджер пакетов macOS, который является фактическим стандартом в этой области, называется Homebrew. Если он в вашей системе есть, вы можете установить Node.js, выполнив эту команду в командной строке:
brew install node
Список менеджеров пакетов для других операционных систем, в том числе — для Linux и Windows, можно найти здесь.
Популярным менеджером версий Node.js является nvm. Это средство позволяет удобно переключаться между различными версиями Node.js, с его помощью можно, например, установить и попробовать новую версию Node.js, после чего, при необходимости, вернуться на старую. Nvm пригодится и в ситуации, когда нужно испытать какой-нибудь код на старой версии Node.js.
Я посоветовал бы начинающим пользоваться официальными установщиками Node.js. Пользователям macOS я порекомендовал бы устанавливать Node.js с помощью Homebrew. Теперь, после того, как вы установили Node.js, пришло время написать «Hello World».
Первое Node.js-приложение
Самым распространённым примером первого приложения для Node.js можно назвать простой веб-сервер. Вот его код:
const http = require('http')
const hostname = '127.0.0.1'
const port = 3000
const server = http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'text/plain')
res.end('Hello World\n')
})
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`)
})
Для того чтобы запустить этот код, сохраните его в файле server.js и выполните в терминале такую команду:
node server.js
Для проверки сервера откройте какой-нибудь браузер и введите в адресной строке http://127.0.0.1:3000, то есть — тот адрес сервера, который будет выведен в консоли после его успешного запуска. Если всё работает как надо — на странице будет выведено «Hello World».
Разберём этот пример.
Для начала, обратите внимание на то, что код содержит команду подключения модуля http.
Платформа Node.js является обладателем замечательного стандартного набора модулей, в который входят отлично проработанные механизмы для работы с сетью.
Метод createServer() объекта http создаёт новый HTTP-сервер и возвращает его.
Сервер настроен на прослушивание определённого порта на заданном хосте. Когда сервер будет готов, вызывается соответствующий коллбэк, сообщающий нам о том, что сервер работает.
Когда сервер получает запрос, вызывается событие request, предоставляющее два объекта. Первый — это запрос (req, объект http.IncomingMessage), второй — ответ (res, объект http.ServerResponse). Они представляют собой важнейшие механизмы обработки HTTP-запросов.
Первый предоставляет в наше распоряжение сведения о запросе. В нашем простом примере этими данными мы не пользуемся, но, при необходимости, с помощью объекта req можно получить доступ к заголовкам запроса и к переданным в нём данным.
Второй нужен для формирования и отправки ответа на запрос.
В данном случае ответ на запрос мы формируем следующим образом. Сначала устанавливаем свойство statusCode в значение 200, что указывает на успешное выполнение операции:
res.statusCode = 200
Далее, мы устанавливаем заголовок Content-Type:
res.setHeader('Content-Type', 'text/plain')
После этого мы завершаем подготовку ответа, добавляя его содержимое в качестве аргумента метода end():
res.end('Hello World\n')
Мы уже говорили о том, что вокруг платформы Node.js сформировалась мощная экосистема. Обсудим теперь некоторые популярные фреймворки и вспомогательные инструменты для Node.js.
Фреймворки и вспомогательные инструменты для Node.js
Node.js — это низкоуровневая платформа. Для того чтобы упростить разработку для неё и облегчить жизнь программистам, было создано огромное количество библиотек. Некоторые из них со временем стали весьма популярными. Вот небольшой список библиотек, которые я считаю отлично сделанными и достойными изучения:
- Express. Эта библиотека предоставляет разработчику предельно простой, но мощный инструмент для создания веб-серверов. Ключом к успеху Express стал минималистический подход и ориентация на базовые серверные механизмы без попытки навязать некое видение «единственно правильной» серверной архитектуры.
- Meteor. Это — мощный фулстек-фреймворк, реализующий изоморфный подход к разработке приложений на JavaScript и к использованию кода и на клиенте, и на сервере. Когда-то Meteor представлял собой самостоятельный инструмент, включающий в себя всё, что только может понадобиться разработчику. Теперь он, кроме того, интегрирован с фронтенд-библиотеками, такими, как React, Vue и Angular. Meteor, помимо разработки обычных веб-приложений, можно использовать и в мобильной разработке.
- Koa. Этот веб-фреймворк создан той же командой, которая занимается работой над Express. При его разработке, в основу которой легли годы опыта работы над Express, внимание уделялось простоте решения и его компактности. Этот проект появился как решение задачи внесения в Express серьёзных изменений, несовместимых с другими механизмами фреймворка, которые могли бы расколоть сообщество.
- Next.js. Этот фреймворк предназначен для организации серверного рендеринга React-приложений.
- Micro. Это — весьма компактная библиотека для создания асинхронных HTTP-микросервисов.
- Socket.io. Это библиотека для разработки сетевых приложений реального времени.
На самом деле, в экосистеме Node.js можно найти вспомогательную библиотеку для решения практически любой задачи. Как вы понимаете, на строительство подобной экосистемы нужно немало времени. Платформа Node.js появилась в 2009 году. За время её существования случилось много всего такого, о чём стоит знать программисту, который хочет изучить эту платформу.
Краткая история Node.js
В этом году Node.js исполнилось уже 9 лет. Это, конечно, не так уж и много, если сравнить этот возраст с возрастом JavaScript, которому уже 23 года, или с 25-летним возрастом веба, существующем в таком виде, в котором мы его знаем, если считать от появления браузера Mosaic.
9 лет — это маленький срок для технологии, но сейчас возникает такое ощущение, что платформа Node.js существовала всегда.
Я начал работу с Node.js с ранних версий платформы, когда ей было ещё только 2 года. Даже тогда, несмотря на то, что информации о Node.js было не так уж и много, уже можно было почувствовать, что Node.js — это очень серьёзно.
Теперь поговорим о технологиях, лежащих в основе Node.js и кратко рассмотрим основные события, связанные с этой платформой.
Итак, JavaScript — это язык программирования, который был создан в Netscape как скриптовый язык, предназначенный для управления веб-страницами в браузере Netscape Navigator.
Частью бизнеса Netscape была продажа веб-серверов, которые включали в себя среду, называемую Netscape LiveWire. Она позволяла создавать динамические веб-страницы, используя серверный JavaScript. Как видите, идея использования JS для серверной разработки гораздо старше чем Node.js. Этой идее почти столько же лет, сколько и самому JavaScript, но во времена, о которых идёт речь, популярности серверный JS не снискал.
Одним из ключевых факторов, благодаря которому платформа Node.js стала столь распространённой и популярной, является время её появления. Так, за несколько лет до этого JavaScript начали считать серьёзным языком. Случилось это благодаря приложениям Web 2.0, вроде Google Maps или Gmail, которые продемонстрировали миру возможности современных веб-технологий.
Благодаря конкурентной войне браузеров, которая продолжается и по сей день, серьёзно возросла производительность JavaScript-движков. Команды разработчиков, стоящих за основными браузерами, каждый день работают над повышением производительности их решений, что благотворно влияет на JavaScript в целом. Один из таких движков — это уже упомянутый V8, используемый в браузере Chrome и применяемый в Node.js. Он является одним из результатов стремления разработчиков браузеров к высокой производительности JS-кода.
Конечно же, популярность Node.js основана не только на удачном стечении обстоятельств и на том, что эта платформа появилась в правильное время. Она представила миру инновационный подход к серверной разработке на JavaScript. Рассмотрим основные вехи истории Node.js.
▍2009
- Появление Node.js
- Создание первого варианта npm.
▍2010
- Появление Express.
- Появление Socket.io.
▍2011
- Выход npm 1.0.
- Большие компании, такие, как LinkedIn и Uber, начали пользоваться Node.js.
▍2012
- Быстрый рост популярности Node.js.
▍2013
- Появление Ghost, первой крупной платформы для публикаций, использующей Node.js.
- Выпуск Koa.
▍2014
- В этом году произошли драматические события. Появился проект IO.js, являющийся форком Node.js, целью создания которого, кроме прочего, было внедрение поддержки ES6 и ускорение развития платформы.
▍2015
- Основание организации Node.js Foundation.
- Слияние IO.js и Node.js.
- В npm появляется возможность работать с приватными модулями.
- Выход Node.js 4 (надо отметить, что версий 1, 2 и 3 у этой платформы не было).
▍2016
- Инцидент с пакетом left-pad.
- Появление Yarn.
- Выход Node.js 6.
▍2017
- В npm начинают больше внимания уделять безопасности.
- Выход Node.js 8
- Появление поддержки HTTP/2.
- V8 официально признают в качестве JS-движка, предназначенного не только для Chrome, но и для Node.
- Еженедельно осуществляется 3 миллиарда загрузок из npm.
▍2018
- Выход Node.js 10.
- Поддержка ES-модулей.
- Экспериментальная поддержка mjs.
Итоги
Сегодня вы ознакомились с платформой Node.js, разобрались с её установкой, написали и испытали первое простое приложение. В следующий раз мы поговорим о том, каким объёмом знаний в области JavaScript нужно обладать для успешной разработки для Node.js, о том, чем различаются браузерный и серверный JS-код, и обсудим некоторые приёмы Node.js-разработки.
Уважаемые читатели! Скажите, запустился ли у вас Hello World для Node.js?
Следующие части руководства:
Часть 1: Общие сведения и начало работы
Часть 2: JavaScript, V8, некоторые приёмы разработки
Часть 3: Хостинг, REPL, работа с консолью, модули
Часть 4: npm, файлы package.json и package-lock.json
Часть 5: npm и npx
Часть 6: цикл событий, стек вызовов, таймеры
Часть 7: асинхронное программирование
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Продолжать ли перевод цикла статей про Node.js?
85.31% Категорически да 
11.7% С удовольствием добавлю в закладки86
Проголосовали 735 пользователей. Воздержались 50 пользователей.
Что такое Node JS. Начало работы
Последнее обновление: 17.03.2024
Node.js представляет среду выполнения кода на JavaScript, которая построена на основе движка JavaScript Chrome V8, который позволяет
транслировать вызовы на языке JavaScript в машинный код. Node.js прежде всего предназначен для создания серверных приложений на языке JavaScript. Хотя
также существуют проекты по написанию десктопных приложений (Electron) и даже по созданию кода для микроконтроллеров. Но прежде всего мы говорим о Node.js,
как о платформе для создания веб-приложений.
Особенностью Node.js является то, что Node.js использует один (основной) поток, который получает все запросы и управляет ими через очередь запросов
(таким образом, Node.js является однопоточным сервером). Внутри этого потока выполняется так называемый цикл событий (event loop), который представляет собой цикл,
который непрерывно проверяет запросы из очереди событий и обрабатывает события ввода и вывода.
Если пользователь отправляет запрос на сервер Node.js, в цикле событий выполняется проверка, чтобы определить, требует ли следующий запрос
блокирующей операции ввода или вывода (например, обращение к базе данных или файловой системе). Если нет, то запрос обрабатывается напрямую, и пользователю отправляется результат обработки.
Если же запрос требует блокирующей операции ввода/вывода, для выполнения
этой операции запускается один из нескольких внутренних обработчиков Node.js (потоков). В обработчики передается функция обратного вызова, которая, в свою очередь, вызывается, как только будет выполнена блокирующая операция ввода/вывода.
При этом основной поток не останавливается во время блокирующих операций ввода/вывода: цикл событий постоянно совершает свои обходы,
проверяет новые запросы и так далее. Благодаря этой архитектуре Node.js предотвращает создание все большего количества потоков и
чрезмерного использования памяти.
Node.js является открытым проектом, исходники которого можно посмотреть на github.com.
Установка
Для установки проще всего загрузить с официального сайта установочный пакет и запустить его. Для этого перейдем на официальный сайт https://nodejs.org/en/. На главной странице мы сразу увидим две возможные опции для загрузки:
самая последняя версия NodeJS и LTS-версия.
Причем в зависимости от текущей операционной системы при нажатии на кнопку/ссылку будет загружаться соответствуюзий установочный пакет: для Windows это файл .msi, для MacOS -файл
.pkg, а для Linux — файл tar.xz.
Например, загрузим LTS-версию. В моем случае это версия 22.14.0. На Windows после запуска откроется следующая программа установщика:
Установка на Linux
Если ОС — Windows/MacOS, то мастер установки все выполняет в графическом режиме. Если же у нас Linux, то нам загружается пакет, который называется типа «node-v22.14.0-linux-x64.tar.xz» (конкретный номер версии может отличаться). Распакуем его в системную папку «usr/local» с помощью команды:
sudo tar -xvf node-v22.14.0-linux-x64.tar.xz --directory /usr/local/
После этого внесем путь к папке «/usr/local/node-v22.14.0-linux-x64/bin» в переменные среды. Для этого добавим в конец файла $HOME/.profile или /etc/profile следующую строку:
export PATH=$PATH:/usr/local/node-v22.14.0-linux-x64/bin
И для немедленного применения ее выполним команду
source $HOME/.profile
В качестве альтернативы на Linux также можно использовать пакетные менеджеры. Так, для Debian/Ununtu надо выполнить команду
sudo apt update sudo apt install nodejs npm
Для Red Hat/Fedora надо выполнить команду
sudo dnf install nodejs
ПРи установке через пакетный менеджер стоит учитывать, что в репозиториях нередко может быть относительно старая версия. Поэтому загрузка с оф. сайта может быть более предпочтитеьным способом.
Установка на MacOS
Для установки на MacOS также можно использовать пакетный менеджер Homebrew (если он установлен). В этом случае в консоли надо выполнить команду
brew install node
Проверка установки
После успешной установки вы можем ввести в командной строке/терминале команду node -v, и нам отобразится текущая версия node.js:
C:\Users\eugen>node -v v22.14.0
Версии node.js для других операционных систем наряду с исходниками можно найти по адресу https://nodejs.org/en/download/
Инструменты разработки
Для разработки под Node JS достаточно простейшего текстового редактора. Можно взять любой, например, Visual Studio Code.
REPL
После установки NodeJS нам становится доступным такой инструмент как REPL. REPL (Read Eval Print Loop) представляет возможность запуска выражений на языке JavaScript в командной строке или терминале.
Так, запустим командную строку (на Windows) или терминал (на OS X или Linux) и введем команду node. После ввода этой команды
мы можем выполнять различные выражения на JavaScript:
C:\WINDOWS\system32>node Welcome to Node.js v22.14.0 Type ".help" for more information. > 2+6 8 >
Или используем какую-нибудь функцию JS:
> console.log("Hello METANIT.COM");
Hello METANIT.COM
undefined
>
Можно определять свои функции и затем их вызывать, например, возведение числа в квадрат:
> function square(x){return x * x;}
undefined
>square(5)
25
>
Если мы введем что-то неправильно, то REPL укажет об ошибке:
Выполнение файла
Вместо того чтобы вводить весь код напрямую в консоль, удобнее вынести его во внешний файл. Например, создадим на жестком диске
новый каталог, допустим, C:\node\, в который поместим новый файл app.js со следующим кодом:
console.log("Hello world");
В командной строке перейдем с помощью команды cd к каталогу C:\node, а затем выполним команду:
node app.js
Данная команда выполнит код из файла app.js:
Пройдите тест, узнайте какой профессии подходите
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы
Введение в Node.js
Node.js — это платформа для выполнения JavaScript-кода на сервере. Она построена на движке V8 от Google, который также используется в браузере Chrome. Node.js позволяет создавать высокопроизводительные и масштабируемые сетевые приложения, используя неблокирующую модель ввода-вывода и событийно-ориентированную архитектуру. Это означает, что Node.js может обрабатывать множество запросов одновременно, не блокируя выполнение других операций.
Node.js популярен среди разработчиков благодаря своей простоте и эффективности. Он используется для создания веб-серверов, API, микросервисов и даже десктопных приложений. В этой статье мы рассмотрим основные аспекты работы с Node.js, включая установку, настройку окружения и создание простого сервера. Также мы углубимся в работу с модулями, асинхронными операциями и основами разработки серверных приложений.
Установка Node.js и настройка окружения
Шаг 1: Скачивание и установка Node.js
Для начала работы с Node.js необходимо установить его на ваш компьютер. Перейдите на официальный сайт Node.js и скачайте установочный файл для вашей операционной системы. Node.js доступен для Windows, macOS и Linux. Вы можете выбрать между двумя версиями: LTS (Long Term Support) и Current. Рекомендуется выбирать LTS, так как она более стабильна и поддерживается дольше.
После скачивания установочного файла, запустите его и следуйте инструкциям на экране. Установщик автоматически установит Node.js и пакетный менеджер npm (Node Package Manager), который используется для управления зависимостями. npm позволяет легко устанавливать и обновлять библиотеки и модули, необходимые для вашего проекта.
Шаг 2: Проверка установки
После завершения установки откройте терминал (или командную строку) и введите следующие команды, чтобы убедиться, что Node.js и npm установлены правильно:
Эти команды отобразят версии установленных Node.js и npm. Если вы видите номера версий, значит установка прошла успешно. Например, вы можете увидеть что-то вроде v14.17.0 для Node.js и 6.14.13 для npm. Это подтверждает, что все установлено корректно и вы готовы к работе.
Шаг 3: Настройка окружения
Для удобной работы с Node.js рекомендуется использовать текстовый редактор или интегрированную среду разработки (IDE). Популярные варианты включают Visual Studio Code, Sublime Text и Atom. Visual Studio Code особенно популярен среди разработчиков благодаря своим мощным функциям и множеству расширений, которые облегчают разработку.
Установите один из этих редакторов и настройте его под свои нужды. Например, в Visual Studio Code вы можете установить расширения для работы с JavaScript, такие как ESLint для проверки кода и Prettier для автоматического форматирования. Это поможет вам писать чистый и поддерживаемый код.
Основы работы с Node.js
Работа с модулями
Node.js использует модули для организации кода. Модули позволяют разделять функциональность на независимые части, которые можно легко переиспользовать и тестировать. В Node.js есть встроенные модули, такие как fs (файловая система), http (создание серверов) и path (работа с путями файлов). Эти модули предоставляют базовые функции, необходимые для разработки серверных приложений.
Для использования модуля в вашем коде, его необходимо импортировать с помощью функции require. Пример:
Кроме встроенных модулей, вы можете устанавливать сторонние модули с помощью npm. Например, для работы с базами данных, такими как MongoDB, можно использовать модуль mongoose. Установка модуля выполняется командой:
Создание простого скрипта
Создадим простой скрипт, который выводит сообщение в консоль. Создайте новый файл с именем app.js и добавьте следующий код:
Запустите скрипт в терминале командой:
Вы увидите сообщение «Hello, Node.js!» в консоли. Это простой пример, но он демонстрирует, как легко можно начать работать с Node.js.
Асинхронные операции
Одной из ключевых особенностей Node.js является поддержка асинхронных операций. Это позволяет выполнять длительные задачи, такие как чтение файлов или запросы к базе данных, без блокировки основного потока выполнения. Асинхронные операции в Node.js часто реализуются с помощью колбэков, промисов и async/await.
Пример асинхронного чтения файла с использованием колбэков:
Этот код читает содержимое файла example.txt и выводит его в консоль. Если происходит ошибка, она будет обработана и выведена в консоль.
Создание простого сервера на Node.js
Шаг 1: Импорт модуля http
Для создания веб-сервера в Node.js используется встроенный модуль http. Импортируйте его в ваш файл:
Шаг 2: Создание сервера
Создайте сервер, используя метод http.createServer. Этот метод принимает функцию-обработчик, которая будет вызываться при каждом запросе к серверу:
Функция-обработчик принимает два параметра: req (объект запроса) и res (объект ответа). В этом примере мы устанавливаем статус ответа на 200 (OK), задаем заголовок Content-Type как text/plain и отправляем текст «Hello, World!» в ответ на запрос.
Шаг 3: Прослушивание порта
Укажите серверу, на каком порту он должен прослушивать входящие запросы. В нашем примере мы будем использовать порт 3000:
Шаг 4: Запуск сервера
Запустите сервер, выполнив команду:
Теперь ваш сервер запущен и доступен по адресу http://localhost:3000. Откройте этот адрес в браузере, и вы увидите сообщение «Hello, World!». Это простой пример, но он демонстрирует основные принципы создания серверных приложений на Node.js.
Обработка различных маршрутов
Для более сложных приложений вам может понадобиться обрабатывать различные маршруты. Например, вы можете создать сервер, который возвращает разные ответы в зависимости от URL запроса:
Этот код обрабатывает три маршрута: корневой (/), страницу «О нас» (/about) и все остальные маршруты, возвращая соответствующие ответы.
Заключение и дальнейшие шаги
Поздравляем! Вы успешно установили Node.js, настроили окружение и создали простой веб-сервер. Это лишь начало вашего пути в мире Node.js. Дальнейшие шаги могут включать изучение следующих тем:
- Работа с асинхронными операциями и промисами
- Использование фреймворков, таких как Express.js, для упрощения разработки серверных приложений
- Работа с базами данных, такими как MongoDB или PostgreSQL
- Создание RESTful API и микросервисов
- Управление зависимостями и пакетами с помощью npm
- Тестирование и отладка приложений на Node.js
- Развертывание приложений на сервере или в облаке
Node.js — мощный инструмент, который открывает множество возможностей для разработки серверных приложений. Продолжайте учиться и экспериментировать, и вы быстро освоите все его возможности. Удачи в ваших начинаниях! 😉
Читайте также
#статьи
-
0
Каждые несколько лет браузер с HTML5 изменяется — это совершенно нормально. Важно выбрать подходящие инструменты.
Иллюстрация: Оля Ежак для Skillbox Media
Пишет про разработку в Skillbox Media. Работал главным редактором сайта «Хабрахабр», ведёт корпоративные блоги.
Чтобы создавать приложения на HTML5, нужно постоянно осваивать новые технологии и инструменты. Браузер с HTML5 — очень изменчивая платформа. Каждые несколько лет всё становится с ног на голову, а набор технологий для создания современного приложения изменяется.
Одно из таких «мастхэв-средств» разработки клиентских приложений — Node.js:
- Что это такое
- Как платформа устроена изнутри
- Особенности среды исполнения
- Для чего нужен и где используется
- Как установить и запустить Node.js
- Пишем первую программу
- Платформа как конструктор приложений
Node.js — это среда выполнения JavaScript-программ, построенная на движке Chrome V8. Раньше на JS можно было делать только интерактивные сайты, так как это специализированный браузерный язык программирования. С программной платформой Node.js появилась возможность создавать «безбраузерные» приложения для компьютера. Это значит, что при необходимости на JavaScript теперь можно делать то же, что на Python и других скриптовых языках программирования общего назначения.
Язык JavaScript создавался в середине девяностых компанией Mozilla как простой скриптовый язык программирования, встраиваемый в код HTML-страниц. Как вспоминает его автор Брендан Эйх, разработчики ставили перед собой цель создать «язык для склеивания» составляющих частей веб-ресурса: изображений, плагинов и Java-апплетов, который был бы удобен для веб-дизайнеров и программистов, не обладающих высокой квалификацией. Он создавался для программирования как на стороне клиента, так и на стороне сервера.
Но, как часто бывает, со временем разработчики начали использовать JavaScript совсем иначе, чем было задумано. Самый неправильно понятый в мире язык программирования в итоге стал самым популярным. К настоящему времени он лидирует в качестве средства для разработки веб-приложений на стороне клиента. Это произошло из-за того, что эволюция веба двинулась в сторону интерактивных веб-приложений, хотя Сеть не была изначально предназначена для этого, как не был предназначен и JavaScript. Пришлось приспособиться.
Для новой роли понадобился новый инструментарий. Постепенно JavaScript оброс целой инфраструктурой фреймворков, библиотек, компиляторов и протоколов. В том числе появилось несколько платформ исполнения серверных и клиентских приложений. Node.js — самая популярная из них. Эту платформу выпустил американский программист Райан Дал в 2009 году.
Программная платформа Node.js работает на движке V8, который транслирует JavaScript в машинный код. Грубо говоря, сама платформа является приложением C++, которое получает на входе JavaScript-код и выполняет его.
В среде исполнения есть собственный интерфейс на C++ для взаимодействия с устройствами ввода-вывода на компьютере. То есть эта платформа фактически превращает JavaScript из специализированного скриптового языка в язык общего назначения. Это означает, что на Node.js вы можете писать любые компьютерные программы.
Главная особенность Node.js в том, что вместо традиционной модели параллелизма на основе потоков автор выбрал событийно-ориентированный подход. Это такая парадигма программирования, в которой выполнение программ определяется событиями. Например, это действие пользователя, поступление сетевого пакета, сообщение из другой программы и так далее.
Такой подход сильно упрощает программирование некоторых приложений, особенно при реализации удобного интерфейса ввода-вывода (I/O), как у Node.js. По легенде, идея создания пришла автору, когда он увидел полосу загрузки файлов на Flickr, которая не понимала реального процента загрузки файлов, то есть не имела обратной связи от браузера из-за отсутствия событийной привязки.
С распространением в интернете социальных сетей и других интерактивных сайтов резко выросла востребованность Node.js как платформы для приложений, реагирующих на действия пользователя: чатов, игр, инструментов совместной работы — теперь всё это делают на JavaScript с помощью среды исполнения.
Таким образом, Node.js — это событийно-ориентированный I/O-фреймворк на JavaScript. Технические особенности делают приложения на его основе легковесными и эффективными. Этим и объясняется его огромная популярность.
Разработку языка координирует OpenJS Foundation, который финансируется по программе поддержки свободных проектов Linux Foundation. Это свободный распределённый проект, в создании которого на безвозмездной основе участвуют тысячи разработчиков со всего мира.
Среда исполнения представляет собой платформу для написания JavaScript-приложений с использованием внешних библиотек.
Благодаря Node.js написанный для браузера код JavaScript получает доступ к глобальным объектам, таким как document и window, наряду с другими API и библиотеками. С помощью Node.js код обращается к жёсткому диску, базам данных и Сети. Это делает возможным написание любых приложений: от утилит командной строки и видеоигр до полноценных веб-серверов.
Чаще всего Node.js используется при написании веб-приложений с интенсивным вводом-выводом. Самый распространённый пример — это веб-серверы. Ещё платформу используют для создания приложений реального времени: чатов, коммуникационных программ и игр. Многие приложения имеют и серверную, и клиентскую части.
Важной частью Node.js является пакетный менеджер NPM — Node Package Manager, который устанавливается вместе с интерпретатором (см. ниже).
Последнюю версию Node.js можно скачать с официального сайта nodejs.org. Для большинства пользователей рекомендуется установка версии с долговременной поддержкой (LTS). На данный момент это 18.14.2.
Установленная среда исполнения предоставляет две утилиты командной строки: Node и NPM. Первая запускает софт, созданный на JavaScript.
Напишем простую программу на JavaScript, которая выводит в консоль текст:
console.log("Skillbox test");
Сохраним её в файл skillbox.js. Так вот, команда node может выполнить эту программу с JS-кодом:
Команда node выполнила программу skillbox.js — вывела в консоль текст «Skillbox test».
Кроме Node на компьютер устанавливается программа NPM — это система управления пакетами Node, необходимая для установки свободно распространяемых инструментов из Сети. Нам как раз впоследствии понадобятся некоторые из этих инструментов, которые нужно будет скачать после установки NPM. Все программы здесь скачиваются и устанавливаются стандартным путём:
console.log («Skillbox test»);
Получить список доступных пакетов и их краткое описание можно с помощью следующей команды:
Например, нам понадобится программа browser-sync для запуска примеров кода в браузере и автоматического обновления страницы при сохранении изменений в коде. Инструмент устанавливается такой командой (с параметром -g, который означает «глобальную» установку пакета для выполнения из любого каталога):
npm install -g browser-sync
Платформа Node.js содержит огромное количество полезных модулей, помогающих при работе с файлами и каталогами, взаимодействии по Сети и обработке событий. Для Node.js выпущено более 650 000 пакетов свободного программного обеспечения, поэтому создание многих приложений похоже на сборку из кубиков конструктора.
Кроме Node и NPM нужно ещё установить редактор кода, если его у вас до сих пор нет. Есть несколько удобных редакторов, в том числе Visual Studio Code от Microsoft, Brackets от Adobe и популярный свободный редактор Atom. Все они бесплатные.
Курс с трудоустройством: «Фулстек-разработчик на JavaScript»»
Узнать о курсе
