Dostupna je JavaScript platforma Node.js 18.0 na strani servera

Objavljen je Node.js 18.0, platforma za pokretanje mrežnih aplikacija u JavaScript-u. Node.js 18.0 je klasifikovan kao grana za dugoročnu podršku, ali će ovaj status biti dodijeljen tek u oktobru, nakon stabilizacije. Node.js 18.x će biti podržan do aprila 2025. Održavanje prethodne LTS grane Node.js 16.x trajaće do aprila 2024., a pretprošle LTS grane 14.x do aprila 2023. godine. Grana 12.x LTS će biti ukinuta 30. aprila, a grana za provođenje Node.js 17.x će biti ukinuta 1. juna.

Glavna poboljšanja:

  • V8 motor je ažuriran na verziju 10.1, koja se koristi u Chromiumu 101. U poređenju sa izdanjem Node.js 17.9.0, sada postoji podrška za funkcije kao što su metode findLast i findLastIndex za pronalaženje elemenata u odnosu na kraj niz i funkciju Intl.supportedValuesOf. Poboljšani API za međunarodnu lokalizaciju. Inicijalizacija polja klase i privatnih metoda je ubrzana.
  • Eksperimentalni fetch() API je omogućen prema zadanim postavkama, dizajniran za učitavanje resursa preko mreže. Implementacija je zasnovana na kodu HTTP/1.1 undici klijenta i što je bliža sličnom API-ju koji se nalazi u pretraživačima. Ovo uključuje podršku za FormData, Headers, Request i Response interfejse za manipulaciju HTTP zaglavlja zahtjeva i odgovora. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(podaci); }
  • Dodata je eksperimentalna implementacija Web Streams API-ja, koja omogućava pristup tokovima podataka primljenim preko mreže. API omogućava dodavanje vlastitih rukovatelja za rad s podacima kako informacije stignu preko mreže, bez čekanja da se cijeli fajl preuzme. Objekti koji su sada dostupni u Node.js uključuju ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream i DecompressionStream.
  • Blob API je premješten u stabilan, omogućavajući vam da enkapsulirate nepromjenjive sirove podatke za sigurnu upotrebu u različitim radničkim nitima.
  • BroadcastChannel API je stabilan, omogućavajući vam da organizirate razmjenu poruka u asinhronom modu u formatu „jedan pošiljalac - mnogo primalaca“.
  • Dodan eksperimentalni modul node:test za kreiranje i pokretanje testova u JavaScript-u koji vraćaju rezultate u TAP (Test Anything Protocol) formatu.
  • Osigurana je generacija gotovih sklopova za Red Hat Enterprise Linux (RHEL) 8 i druge distribucije bazirane na Glibc 2.28+, uključujući Debian 10 i Ubuntu 20.04, kao i za macOS 10.15+. Zbog problema sa V8 motorom, kreiranje 32-bitnih verzija za Windows je privremeno zaustavljeno.
  • Pruža eksperimentalnu opciju za izgradnju Node.js izvršne datoteke s komponentama koje je izabrao korisnik inicijaliziranim pri pokretanju. Da biste definirali početne komponente, opcija “--node-snapshot-main” je dodana skripti za konfiguriranje, na primjer, “./configure —node-snapshot-main=marked.js; ime čvora"

Node.js platforma se može koristiti i za serversko održavanje web aplikacija i za kreiranje redovnih klijentskih i serverskih mrežnih programa. Za proširenje funkcionalnosti aplikacija za Node.js, pripremljena je velika zbirka modula u kojoj se mogu pronaći moduli sa implementacijom HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 servera i klijenata, moduli za integraciju sa raznim web okvirima, WebSocket i Ajax rukovaocima, DBMS konektorima (MySQL, PostgreSQL, SQLite, MongoDB), šablonskim mašinama, CSS motorima, implementacijama kripto algoritama i sistema autorizacije (OAuth), XML parserima.

Da bi se osigurala obrada velikog broja paralelnih zahtjeva, Node.js koristi model izvršavanja asinhronog koda zasnovan na rukovanju događajima bez blokiranja i definiciji rukovatelja povratnim pozivima. Podržane metode za multipleksiranje veza su epoll, kqueue, /dev/poll i select. Za multipleksiranje veze koristi se biblioteka libuv, koja je dodatak za libev na Unix sistemima i IOCP na Windows. Biblioteka libeio se koristi za kreiranje spremišta niti, a c-ares je integriran za obavljanje DNS upita u neblokirajućem načinu. Svi sistemski pozivi koji uzrokuju blokiranje izvode se unutar spremišta niti, a zatim, kao rukovaoci signala, prenose rezultat svog rada nazad kroz neimenovanu cijev (cijev). Izvršenje JavaScript koda je obezbeđeno korišćenjem V8 motora koji je razvio Google (pored toga, Microsoft razvija verziju Node.js sa Chakra-Core motorom).

U svojoj srži, Node.js je sličan Perl AnyEvent, Ruby Event Machine, Python Twisted framework-u i Tcl implementaciji događaja, ali je petlja događaja u Node.js skrivena od programera i nalikuje rukovanju događajima u web aplikaciji koja radi u pretraživaču. Kada pišete aplikacije za node.js, morate uzeti u obzir specifičnosti programiranja vođenog događajima, na primjer, umjesto da radite "var result = db.query("select..");" uz čekanje završetka rada i naknadnu obradu rezultata, Node.js koristi princip asinhronog izvršavanja, tj. kod se transformira u "db.query("select..", function (result) {result processing});", u kojem će kontrola trenutno proći daljem kodu, a rezultat upita će biti obrađen kako podaci stignu.

izvor: opennet.ru

Dodajte komentar