Достапна е JavaScript платформата Node.js 18.0 од страна на серверот

Беше објавен Node.js 18.0, платформа за водење мрежни апликации во JavaScript. Node.js 18.0 е класифициран како гранка за долгорочна поддршка, но овој статус ќе биде доделен дури во октомври, по стабилизацијата. Node.js 18.x ќе биде поддржан до април 2025 година. Одржувањето на претходната LTS гранка на Node.js 16.x ќе трае до април 2024 година, а годината пред последната LTS гранка 14.x до април 2023 година. Филијалата 12.x LTS ќе биде прекината на 30-ти април, а гранката за поставување на Node.js 17.x ќе биде прекината на 1-ви јуни.

Главни подобрувања:

  • Моторот V8 е ажуриран на верзијата 10.1, користена во Chromium 101. Во споредба со изданието 17.9.0 на Node.js, сега има поддршка за функции како што се методите findLast и findLastIndex за наоѓање елементи во однос на крајот на низата , и функцијата Intl.supportedValuesOf. Подобрено Intl.Locale API. Иницијализацијата на полињата на класите и приватните методи е забрзана.
  • Експерименталното fetch() API е стандардно овозможено, дизајнирано за вчитување ресурси преку мрежата. Имплементацијата се заснова на кодот од клиентот HTTP/1.1 undici и е што е можно поблиску до сличното API обезбедено во прелистувачите. Ова вклучува поддршка за интерфејсите FormData, Headers, Request и Response за манипулирање со заглавјата на HTTP барања и одговор. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) {const data = await res.json(); console.log(податоци); }
  • Додадена е експериментална имплементација на Web Streams API, обезбедувајќи пристап до потоци на податоци добиени преку мрежата. API овозможува да додадете ваши сопствени управувачи за работа со податоци додека информациите пристигнуваат преку мрежата, без да се чека да се преземе целата датотека. Објектите што сега се достапни во Node.js вклучуваат ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream и DecompressionStream.
  • Blob API е преместен во стабилен, што ви овозможува да инкапсулирате непроменливи сурови податоци за безбедна употреба во различни работни нишки.
  • BroadcastChannel API е направен стабилен, овозможувајќи ви да организирате размена на пораки во асинхрон режим во формат „еден испраќач - многу примачи“.
  • Додаден е експериментален јазол на модул: тест за креирање и извршување тестови во JavaScript кои враќаат резултати во формат TAP (Test Anything Protocol).
  • Обезбедено е генерирање на готови склопови за Red Hat Enterprise Linux (RHEL) 8 и други дистрибуции базирани на Glibc 2.28+, вклучувајќи ги и Debian 10 и Ubuntu 20.04, како и за macOS 10.15+. Поради проблеми со изградбата на моторот V8, создавањето на 32-битни изданија за Windows е привремено стопирано.
  • Обезбедена е експериментална опција за изградба на извршна датотека Node.js со компоненти избрани од корисникот иницијализирани при стартување. За да се дефинираат почетните компоненти, опцијата „--node-snapshot-main“ е додадена во скриптата за конфигурирање на градбата, на пример, „./configure —node-snapshot-main=marked.js; именски јазол"

Платформата Node.js може да се користи и за серверско одржување на веб-апликации и за креирање редовни мрежни програми за клиент и сервер. За проширување на функционалноста на апликациите за Node.js, подготвена е голема колекција на модули, во кои можете да најдете модули со имплементација на HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 сервери и клиенти, модули за интеграција со различни веб-рамки, WebSocket и Ajax управувачи, DBMS конектори (MySQL, PostgreSQL, SQLite, MongoDB), мотори за шаблони, CSS мотори, имплементации на крипто алгоритми и системи за авторизација (OAuth), XML парсери.

За да се обезбеди обработка на голем број паралелни барања, Node.js користи асинхрон модел за извршување код базиран на неблокирачко справување со настани и дефиниција за ракувачи со повратен повик. Поддржани методи за мултиплексирање конекции се epoll, kqueue, /dev/poll и select. За мултиплексирање на поврзување, се користи библиотеката libuv, која е додаток за libev на Unix системите и IOCP на Windows. Библиотеката libeio се користи за создавање на базен на нишки, а c-ares е интегриран за извршување на барања за DNS во режим без блокирање. Сите системски повици кои предизвикуваат блокирање се извршуваат внатре во базенот на нишки и потоа, како ракувачи со сигнали, го пренесуваат резултатот од нивната работа назад преку неименувана цевка (цевка). Извршувањето на JavaScript кодот е обезбедено преку употреба на моторот V8 развиен од Google (покрај тоа, Microsoft развива верзија на Node.js со моторот Chakra-Core).

Во неговото јадро, Node.js е сличен на Perl AnyEvent, Ruby Event Machine, Python Twisted рамки и имплементацијата на настанот Tcl, но циклусот на настани во Node.js е скриен од развивачот и наликува на справување со настани во веб-апликација која работи во прелистувачот. Кога пишувате апликации за node.js, треба да ги земете предвид спецификите на програмирањето управувано од настани, на пример, наместо да правите "var result = db.query("select..");" со чекање за завршување на работата и последователна обработка на резултатите, Node.js го користи принципот на асинхроно извршување, т.е. кодот се трансформира во „db.query („избери..“, функција (резултат) {обработка на резултат});“, во која контролата веднаш ќе премине на понатамошниот код, а резултатот од барањето ќе се обработува како што пристигнуваат податоците.

Извор: opennet.ru

Додадете коментар