Издание на JavaScript Node.js 14.0 од страна на серверот

се одржа ослободување Јазол.js 14.0,платформи за извршување на мрежни апликации во JavaScript. Node.js 14.0 е гранка за долгорочна поддршка, но овој статус ќе биде доделен само во октомври, по стабилизацијата. Node.js 14.0 ќе биде поддржан да се спроведе до април 2023 година. Одржувањето на претходната LTS филијала на Node.js 12.0 ќе трае до април 2022 година, а годината пред последната LTS гранка 10.0 до април 2021 година. Поддршката за гранката 13.x staging ќе заврши во јуни оваа година.

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

  • Способноста за генерирање во лет или при појава на одредени настани е стабилизирана дијагностички извештаи, кои прикажуваат настани кои помагаат да се дијагностицираат проблеми како што се падови, деградација на перформансите, протекување на меморијата, големо оптоварување на процесорот, неочекуван излез на грешка итн.
  • Додадена е експериментална поддршка за API Асинхронизирано локално складирање со имплементација на класата AsyncLocalStorage, која може да се користи за создавање асинхрони состојби со ракувачи базирани на повици и ветувања за повратен повик. AsyncLocalStorage ви овозможува да складирате податоци додека се обработува веб-барање, што потсетува на локално складирање низи на други јазици.
  • Отстранета предупредувачка порака за експериментална функција при вчитување модули ECMAScript 6 година поврзани и извезени со користење на изјави за увоз и извоз. Во исто време, самата имплементација на ESM модулите останува експериментална.
  • Моторот V8 е ажуриран во верзија 8.1 (1, 2, 3), кој вклучува нови оптимизации за изведба и карактеристики како што е новиот оператор за логичко поврзување "??" (го враќа десниот операнд ако левиот операнд е NULL или недефиниран, и обратно), операторот „?“. за еднократна проверка на целиот синџир на својства или повици (на пример, „db?.user?.name?.length“ без прелиминарни проверки), методот Intl.DisplayName за добивање локализирани имиња итн.
  • Беше извршена ревизија на Streams API, чија цел беше да се подобри конзистентноста на Streams API и да се елиминираат разликите во однесувањето на основните делови на Node.js. На пример, однесувањето на http.OutgoingMessage е блиску до stream.Writable, а net.Socket е слично на stream.Duplex. Опцијата autoDestroy е стандардно поставена на „true“, што значи повикување „_destroy“ по завршувањето.
  • Додадена е експериментална поддршка за API ВАСИ (Системски интерфејс WebAssembly), обезбедување софтверски интерфејси за директна интеракција со оперативниот систем (POSIX API за работа со датотеки, приклучоци итн.).
  • Зголемени барања за минимални верзии компајлери и платформи: macOS 10.13 (High Sierra), GCC 6, Windows понов 7/2008R2.

Да потсетиме дека платформата 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. Библиотеката се користи за мултиплекс врски либув, што е надградба над либев на Unix системи и преку IOCP на Windows. Библиотеката се користи за создавање на базен со нишки либејо, за извршување на DNS барања во неблокирачки режим е интегриран в-ари. Сите системски повици кои предизвикуваат блокирање се извршуваат во рамките на базенот на нишки и потоа, како ракувачи со сигнали, го пренесуваат резултатот од нивната работа назад низ неименувана цевка. Извршувањето на JavaScript кодот е обезбедено преку употреба на мотор развиен од Google V8 (Покрај тоа, Microsoft развива верзија на Node.js со моторот Chakra-Core).

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

Извор: opennet.ru

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