- Обзор
- Лучшие особенности Node.js
- Быстро
- Простой
- язык JavaScript
- V8
- Асинхронная платформа
- Огромное количество библиотек
- Пример Node.js применение
- Node.js рамки и инструменты
Node.js является средой выполнения для JavaScript , которая выполняется на сервере .
Node.js является кроссплатформенным с открытым исходным кодом, и с момента своего появления в 2009 году он стал чрезвычайно популярным и теперь играет значительную роль на сцене веб-разработки. Если звезды GitHub являются одним из факторов, указывающих на популярность, то наличие 58000+ звезд означает, что вы очень популярны.
Node.js запускает движок JavaScript V8, ядро Google Chrome, за пределами браузера. Node.js способен использовать работу инженеров, которые сделали (и будут продолжать делать) среду выполнения Chrome JavaScript очень быстрой, и это позволяет Node.js чтобы извлечь выгоду из огромных улучшений производительности и своевременной компиляции, которую выполняет V8. Благодаря этому код JavaScript, запущенный в Node.js может стать очень результативным.
А Node.js приложение запускается одним процессом, без создания нового потока для каждого запроса. Узел предоставляет набор асинхронных примитивов ввода-вывода в своей стандартной библиотеке, которые предотвратят блокировку кода JavaScript и, как правило, библиотек в Node.js написаны с использованием неблокирующих парадигм, что делает блокирующее поведение исключением, а не нормой.
Когда Node.js необходимо выполнить операцию ввода-вывода, такую как чтение из сети, доступ к базе данных или файловой системе, вместо блокировки потока Node.js возобновит операции, когда ответ вернется, вместо того, чтобы тратить циклы процессора на ожидание.
Это позволяет Node.js обрабатывать тысячи одновременных подключений с одним сервером, не обременяя себя управлением параллелизмом потоков, что было бы основным источником ошибок.
Node.js имеет уникальное преимущество, поскольку миллионы разработчиков интерфейсов, которые пишут JavaScript для браузера, теперь могут запускать код на стороне сервера и код на стороне интерфейса без необходимости изучать совершенно другой язык.
В Node.js новые стандарты ECMAScript можно использовать без проблем, так как вам не нужно ждать, пока все ваши пользователи обновят свои браузеры – вы сами решаете, какую версию ECMAScript использовать, изменив Node.js версию, и вы также можете включить определенные экспериментальные функции, запустив узел с флагами.
Node.js имеет огромное количество библиотек
npm с его простой структурой помог экосистеме node.js распространяйтесь, и теперь в реестре npm содержится почти 500 000 пакетов с открытым исходным кодом, которые вы можете свободно использовать.
Пример 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 файл и запустить узел server.js в вашем терминале.
Этот код сначала включает в себя Node.js http модуль .
Node.js имеет потрясающую стандартную библиотеку , включая первоклассную поддержку сетей.
createServer() метод http создает новый HTTP-сервер и возвращает его.
Сервер настроен на прослушивание указанного порта и имени хоста. Когда сервер готов, вызывается функция обратного вызова, в этом случае сообщающая нам, что сервер запущен.
Всякий раз, когда поступает новый запрос, вызывается запрос событие , предоставляющее два объекта: запрос ( http. Входящее сообщение объект) и ответ ( http. Ответ сервера объект).
Эти 2 объекта необходимы для обработки HTTP-вызова.
Первый содержит подробную информацию о запросе. В этом простом примере это не используется, но вы можете получить доступ к заголовкам запросов и данным запроса.
Второй используется для возврата данных вызывающему абоненту.
В этом случае с
res.statusCode = 200
мы установили свойство StatusCode равным 200, чтобы указать успешный ответ.
Мы устанавливаем заголовок типа содержимого:
res.setHeader('Content-Type', 'text/plain')и мы заканчиваем закрывать ответ, добавляя содержимое в качестве аргумента в end() :
res.end('Hello World\n')Node.js рамки и инструменты
Node.js это низкоуровневая платформа, и для того, чтобы сделать все проще и интереснее для разработчиков, были созданы тысячи библиотек Node.js .
Многие из них со временем стали популярными вариантами. Вот неполный список тех, которые я считаю очень актуальными и достойными изучения:
- Express , один из самых простых, но мощных способов создания веб-сервера. Его минималистский подход, открытый, сосредоточенный на основных функциях сервера, является ключом к его успеху.
- Meteor , невероятно мощный фреймворк с полным стеком, предоставляющий вам изоморфный подход к созданию приложений на JavaScript, совместному использованию кода на клиенте и сервере. Когда-то готовый инструмент, который обеспечивал все, теперь интегрируется с интерфейсными библиотеками React, Vue и угловой. Также может использоваться для создания мобильных приложений.
- koa , созданный той же командой, что и Express, стремится быть еще проще и меньше, опираясь на многолетний опыт. Новый проект возник из необходимости внести несовместимые изменения, не нарушая существующего сообщества.
- Next.js , фреймворк для визуализации на стороне сервера Реагировать приложения.
- Micro , очень легкий сервер для создания асинхронных микросервисов HTTP.
- Socket.io , механизм связи в реальном времени для создания сетевых приложений.
Оригинал: “https://flaviocopes.com/nodejs/”