Versiunea JavaScript Node.js 13.0 la nivelul serverului

Disponibil eliberare Node.js 13.0,platforme pentru rularea aplicațiilor de rețea în JavaScript. Totodată, a fost finalizată stabilizarea ramurii anterioare a Node.js 12.x, care a fost transferată în categoria versiunilor de suport pe termen lung, actualizări pentru care sunt lansate timp de 4 ani. Suportul pentru ramura LTS anterioară a Node.js 10.0 va dura până în aprilie 2021, iar suportul pentru ultima ramură LTS 8.0 până în ianuarie 2020.

Principalul îmbunătățiri:

  • Motor V8 actualizat la versiune 7.8, care utilizează noi tehnici de optimizare a performanței, îmbunătățește destructurarea obiectelor, reduce consumul de memorie și reduce timpul de pregătire pentru execuția WebAssembly;
  • Suportul complet pentru internaționalizare și Unicode bazat pe bibliotecă este activat implicit ATI (Componente internaționale pentru Unicode), care permite dezvoltatorilor să scrie cod de susținere lucrați cu diferite limbi și locații. Modulul full-icu este acum instalat implicit;
  • API stabilizat Fire de muncitori, permițând creați bucle de evenimente cu mai multe fire. Implementarea se bazează pe modulul worker_threads, care vă permite să rulați cod JavaScript în mai multe fire paralele. Suport stabil pentru API-ul Workers Threads a fost, de asemenea, retroportat în ramura LTS a Node.js 12.x;
  • Cerințele pentru platforme au fost crescute. De asamblat acum necesar cel puțin macOS 10.11 (necesită Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Suport îmbunătățit pentru Python 3. Dacă sistemul are atât Python 2, cât și Python 3, Python 2 este încă folosit, dar a fost adăugată capacitatea de a construi atunci când numai Python 3 este instalat pe sistem;
  • Vechea implementare a parserului HTTP („—http-parser=legacy”) a fost eliminată. Apeluri și proprietăți eliminate sau depreciate FSWatcher.prototype.start(), ChildProcess._channel, metoda open() în obiectele ReadStream și WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • Urmează a iesit actualizare 13.0.1, care a remediat rapid mai multe erori. În special, problema cu npm 6.12.0 care afișează un avertisment despre utilizarea unei versiuni neacceptate a fost rezolvată.

Să reamintim că platforma Node.js poate fi folosită atât pentru suport de server pentru aplicații Web, cât și pentru crearea de programe obișnuite de rețea client și server. Pentru a extinde funcționalitatea aplicațiilor pentru Node.js, un număr mare de colecție de module, în care puteți găsi module cu implementare de servere și clienți HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module de integrare cu diverse cadre web, handlere WebSocket și Ajax, conectori la DBMS (MySQL, PostgreSQL, SQLite). , MongoDB ), motoare de șablon, motoare CSS, implementări de algoritmi criptografici și sisteme de autorizare (OAuth), parsere XML.

Pentru a gestiona un număr mare de solicitări paralele, Node.js folosește un model de execuție a codului asincron bazat pe procesarea evenimentelor neblocante și definirea handlerelor de apel invers. Metodele acceptate pentru multiplexarea conexiunilor includ epoll, kqueue, /dev/poll și select. Biblioteca este folosită pentru multiplexarea conexiunilor libuv, care este o suprastructură peste libev pe sisteme Unix și prin IOCP pe Windows. O bibliotecă este folosită pentru a crea un pool de fire libeio, pentru efectuarea de interogări DNS în modul neblocant este integrat c-ari. Toate apelurile de sistem care provoacă blocarea sunt executate în pool-ul de fire și apoi, ca și manipulatorii de semnal, trec rezultatul muncii lor înapoi printr-o conductă fără nume. Executarea codului JavaScript este asigurată prin utilizarea unui motor dezvoltat de Google V8 (În plus, Microsoft dezvoltă o versiune de Node.js cu motorul Chakra-Core).

În esență, Node.js este similar cu cadrele Perl AnyEvent, Ruby Event Machine, Python Twisted и implementare evenimente în Tcl, dar bucla de evenimente din Node.js este ascunsă de dezvoltator și seamănă cu gestionarea evenimentelor într-o aplicație web care rulează într-un browser. Când scrieți aplicații pentru node.js, este necesar să țineți cont de specificul programării bazate pe evenimente, de exemplu, în loc să faceți „var result = db.query(“select..”);” cu așteptarea finalizării lucrărilor și procesarea ulterioară a rezultatelor, Node.js folosește principiul execuției asincrone, adică. codul este transformat în „db.query(“select..”, funcția (rezultat) {prelucrare rezultat});”, în care controlul va trece imediat la codul ulterioar, iar rezultatul interogării va fi procesat pe măsură ce sosesc datele. .

Sursa: opennet.ru

Adauga un comentariu