Выпуск серверной JavaScript-платформы Node.js 15.0
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Состоялся релиз Node.js 15.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 15.0 относится к ветке с обычным сроком поддержки, обновления для которой будут выпускаться до июня 2021 года. В ближайшие дни будет завершена стабилизация ветки Node.js 14, которая получит статус LTS и будет поддерживаться до апреля 2023 года. Сопровождение прошлой LTS-ветки Node.js 12.0 продлится до апреля 2022 года, а позапрошлой LTS-ветки 10.0 до апреля 2021 года.
Основные улучшения:
- Добавлена экспериментальная реализация класса AbortController, основанного на Web API AbortController и позволяющего отменять сигналы в выбранных API на основе Promise.
- N-API (API для разработки дополнений) обновлён до версии 7, в которой появились новые методы для работы с ArrayBuffers.
- Движок V8 обновлён до версии 8.6, что позволило реализовать в Node.js 15 такие возможности, как Promise.any(), AggregateError, String.prototype.replaceAll(), а также операторы логического присвоения "&&=", "||=" и "??=".
- Осуществлён переход на новый выпуск пакетного менеджера NPM 7.0, в котором появилась поддержка рабочих областей (Workspaces) для объединения зависимости из нескольких пакетов в один пакет, реализована автоматическая установка peer-зависимостей, предложена вторая версия формата блокировок (package-lock.json v2) и поддержка файла-блокировки yarn.lock.
- Обработчик unhandledRejection переключен на использование по умолчанию исключений "throw" вместо предупреждений "warn". В режиме "throw" при отсутствии явно определённого обработчика unhandledRejection генерирует неперехватываемое исключение, но если обработчик задан поведение не изменится. Для возвращения старого поведения предусмотрен флаг "--unhandled-rejections=warn".
- В модуль "net" добавлена экспериментальная поддержка протокола QUIC, который лежит в основе HTTP/3 и рассматривается как альтернатива связке TCP+TLS для Web, решающая проблемы с большим временем установки и согласования соединений в TCP и устраняющая задержки при потере пакетов в процессе передачи данных. QUIC представляет собой надстройку над протоколом UDP, поддерживающую мультиплексирование нескольких соединений и обеспечивающую методы шифрования, эквивалентные TLS/SSL.
Для включения поддержки QUIC в Node.js требуется сборка с флагом "--experimental-quic".
Напомним, что платформа Node.js может быть использована как для серверного сопровождения работы Web-приложений, так и для создания обычных клиентских и серверных сетевых программ. Для расширения функциональности приложений для Node.js подготовлена большая коллекция модулей, в которой можно найти модули с реализацией серверов и клиентов HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, модули для интеграции с различными web-фреймворками, обработчики WebSocket и Ajax, коннекторы к СУБД (MySQL, PostgreSQL, SQLite, MongoDB), шаблонизаторы, CSS-движки, реализации криптоалгоритмов и систем авторизации (OAuth), XML-парсеры.
Для обеспечения обработки большого числа параллельных запросов Node.js задействует асинхронную модель запуска кода, основанную на обработке событий в неблокирующем режиме и определении callback-обработчиков. В качестве способов мультиплексирования соединений поддерживаются такие методы, как epoll, kqueue, /dev/poll и select. Для мультиплексирования соединений используется библиотека libuv, которая является надстройкой над libev в системах Unix и над IOCP в Windows. Для создания пула потоков (thread pool) задействована библиотека libeio, для выполнения DNS-запросов в неблокирующем режиме интегрирован c-ares. Все системные вызовы, вызывающие блокирование, выполняются внутри пула потоков и затем, как и обработчики сигналов, передают результат своей работы обратно через неименованный канал (pipe). Выполнение JavaScript-кода обеспечивается через задействование разработанного компанией Google движка V8 (дополнительно Microsoft развивает вариант Node.js с движком Chakra-Core).
По своей сути Node.js похож на фреймворки Perl AnyEvent, Ruby Event Machine, Python Twisted и реализацию событий в Tcl, но цикл обработки событий (event loop) в Node.js скрыт от разработчика и напоминает обработку событий в web-приложении, работающем в браузере. При написании приложений для node.js необходимо учитывать специфику событийно-ориентированного программирования, например, вместо выполнения "var result = db.query("select..");" с ожиданием завершения работы и последующей обработкой результатов, в Node.js использует принцип асинхронного выполнения, т.е. код трансформируется в "db.query("select..", function (result) {обработка результата});", при котором управление мгновенно перейдёт к дальнейшему коду, а результат запроса будет обработан по мере поступления данных. .
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://nodejs.org/en/blog/rel...)
- OpenNews: Автор Node.js представил защищённую JavaScript-платформу Deno 1.0
- OpenNews: Выпуск серверной JavaScript-платформы Node.js 14.0
- OpenNews: Выпуск серверной JavaScript-платформы Node.js 13.0
- OpenNews: Выпуск сервера приложений NGINX Unit 1.5 с поддержкой Node.js
- OpenNews: Бэкдор в зависимости к event-stream, популярной библиотеке для Node.js
Похожие новости:
- [JavaScript, NoSQL, Node.JS] Инструменты Node.js разработчика. Какие ODM нам нужны
- [Node.JS, IT-компании] Мир на ладони или как мы с помощью чат-бота оптимизируем рабочие процессы сотрудников
- [Node.JS, Разработка веб-сайтов] Мониторинг Node.js-приложения
- [MongoDB, Node.JS, Python] Top 10 Full Stack Development Companies to Check Out in 2020
- [JavaScript, Node.JS, Финансы в IT] Принимаем криптовалютные платежи с Coinbase Commerce
- [Node.JS, Разработка на Raspberry Pi] Raspberry pi & Азбука Морзе
- [Python, Node.JS, Машинное обучение] Machine learning in browser: ways to cook up a model
- [JavaScript, Node.JS] Подключение и настройка TradingView графиков
- [JavaScript, Node.JS] Выбираем финансовые графики для своего приложения
- [JavaScript, Google Chrome, Node.JS, Браузеры, Локализация продуктов] Intl.Segmenter: сегментация Юникода в JavaScript (перевод)
Теги для поиска: #_node.js
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 05:17
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Состоялся релиз Node.js 15.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 15.0 относится к ветке с обычным сроком поддержки, обновления для которой будут выпускаться до июня 2021 года. В ближайшие дни будет завершена стабилизация ветки Node.js 14, которая получит статус LTS и будет поддерживаться до апреля 2023 года. Сопровождение прошлой LTS-ветки Node.js 12.0 продлится до апреля 2022 года, а позапрошлой LTS-ветки 10.0 до апреля 2021 года. Основные улучшения:
Для обеспечения обработки большого числа параллельных запросов Node.js задействует асинхронную модель запуска кода, основанную на обработке событий в неблокирующем режиме и определении callback-обработчиков. В качестве способов мультиплексирования соединений поддерживаются такие методы, как epoll, kqueue, /dev/poll и select. Для мультиплексирования соединений используется библиотека libuv, которая является надстройкой над libev в системах Unix и над IOCP в Windows. Для создания пула потоков (thread pool) задействована библиотека libeio, для выполнения DNS-запросов в неблокирующем режиме интегрирован c-ares. Все системные вызовы, вызывающие блокирование, выполняются внутри пула потоков и затем, как и обработчики сигналов, передают результат своей работы обратно через неименованный канал (pipe). Выполнение JavaScript-кода обеспечивается через задействование разработанного компанией Google движка V8 (дополнительно Microsoft развивает вариант Node.js с движком Chakra-Core). По своей сути Node.js похож на фреймворки Perl AnyEvent, Ruby Event Machine, Python Twisted и реализацию событий в Tcl, но цикл обработки событий (event loop) в Node.js скрыт от разработчика и напоминает обработку событий в web-приложении, работающем в браузере. При написании приложений для node.js необходимо учитывать специфику событийно-ориентированного программирования, например, вместо выполнения "var result = db.query("select..");" с ожиданием завершения работы и последующей обработкой результатов, в Node.js использует принцип асинхронного выполнения, т.е. код трансформируется в "db.query("select..", function (result) {обработка результата});", при котором управление мгновенно перейдёт к дальнейшему коду, а результат запроса будет обработан по мере поступления данных. . =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 05:17
Часовой пояс: UTC + 5