Введение в Node.js
Добавить в избранное
Node.js — это кроссплатформенная среда выполнения JavaScript с открытым исходным кодом. Это популярный инструмент практически для любого проекта!
Node.js запускает движок JavaScript V8, ядро Google Chrome, вне браузера. Это позволяет Node.js быть очень производительным.
Приложение Node.js выполняется в одном процессе без создания нового потока для каждого запроса. Node.js предоставляет набор примитивов асинхронного ввода-вывода в своей стандартной библиотеке, которые предотвращают блокировку кода JavaScript, и, как правило, библиотеки в Node.js написаны с использованием неблокирующих парадигм, что делает поведение блокировки скорее исключением, чем нормой.
Когда Node.js выполняет операцию ввода-вывода, например чтение из сети, доступ к базе данных или файловой системе, вместо блокировки потока и траты циклов ЦП на ожидание Node.js возобновит операции, когда придет ответ.
Это позволяет Node.js обрабатывать тысячи одновременных подключений к одному серверу, не создавая бремени управления параллельным потоком, которое может быть серьезным источником ошибок.
Node.js имеет уникальное преимущество, поскольку миллионы разработчиков интерфейса, пишущих JavaScript для браузера, теперь могут писать код на стороне сервера в дополнение к коду на стороне клиента без необходимости изучать совершенно другой язык.
В Node.js новые стандарты ECMAScript можно использовать без проблем, поскольку вам не нужно ждать, пока все ваши пользователи обновят свои браузеры — вы сами решаете, какую версию ECMAScript использовать, изменив версию Node.js. а также вы можете включить определенные экспериментальные функции, запустив Node.js с флагами.
Пример приложения Node.js
Наиболее распространенным примером Hello World Node.js является веб-сервер:
const { createServer } = require('node:http'); const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Чтобы запустить этот фрагмент, сохраните его как server.jsфайл и запустите node server.jsв своем терминале.
Этот код сначала включает httpмодуль Node.js.
Node.js имеет фантастическую стандартную библиотеку , включая первоклассную поддержку сети.
Метод createServer()создает httpновый HTTP-сервер и возвращает его.
Сервер настроен на прослушивание указанного порта и имени хоста. Когда сервер готов, вызывается функция обратного вызова, в данном случае сообщающая нам, что сервер запущен.
При получении нового запроса вызывается requestсобытие , предоставляющее два объекта: запрос ( http.IncomingMessageобъект) и ответ ( http.ServerResponseобъект).
Эти два объекта необходимы для обработки HTTP-вызова.
Первый предоставляет детали запроса. В этом простом примере это не используется, но вы можете получить доступ к заголовкам и данным запроса.
Второй используется для возврата данных вызывающему абоненту.
В этом случае с:
res.statusCode = 200;
мы устанавливаем для свойства statusCode значение 200, чтобы указать на успешный ответ.
Устанавливаем заголовок Content-Type:
res.setHeader('Content-Type', 'text/plain');
и мы закрываем ответ, добавляя содержимое в качестве аргумента end():
res.end('Hello World\n');
Больше примеров
https://github.com/nodejs/examples для получения списка примеров Node.js, выходящих за рамки hello world.