La versió 13.0 de JavaScript del costat del servidor Node.js

Disponible alliberament NODE.JS 13.0,plataformes per executar aplicacions de xarxa en JavaScript. Paral·lelament, s'ha completat l'estabilització de la branca anterior de Node.js 12.x, que s'ha traslladat a la categoria de versions de suport a llarg termini, les actualitzacions de les quals es publiquen durant 4 anys. El suport per a la branca LTS anterior de Node.js 10.0 durarà fins a l'abril de 2021 i el suport per a l'última branca LTS 8.0 fins al gener de 2020.

El principal millores:

  • Motor V8 actualitzat a la versió 7.8, que utilitza noves tècniques d'optimització del rendiment, millora la desestructuració d'objectes, redueix el consum de memòria i redueix el temps de preparació per a l'execució de WebAssembly;
  • El suport total per a la internacionalització i l'Unicode basat en biblioteques està habilitat per defecte UCI (Components internacionals per a Unicode), que permet als desenvolupadors escriure codi solidari treballar amb diferents idiomes i localitzacions. El mòdul full-icu ara està instal·lat per defecte;
  • API estabilitzada Fils dels treballadors, permetent crear bucles d'esdeveniments multifils. La implementació es basa en el mòdul worker_threads, que us permet executar codi JavaScript en diversos fils paral·lels. El suport estable per a l'API Workers Threads també s'ha retroportat a la branca LTS de Node.js 12.x;
  • S'han augmentat els requisits per a les plataformes. Per muntar ara obligatori almenys macOS 10.11 (requereix Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Suport millorat per a Python 3. Si el sistema té Python 2 i Python 3, encara s'utilitza Python 2, però s'ha afegit la possibilitat de construir quan només s'ha instal·lat Python 3 al sistema;
  • S'ha eliminat l'antiga implementació de l'analitzador HTTP ("—http-parser=legacy"). Trucades i propietats eliminades o obsoletes FSWatcher.prototype.start(), ChildProcess._channel, mètode open() als objectes ReadStream i WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • Següent va resultar actualització 13.0.1, que va solucionar ràpidament diversos errors. En particular, s'ha resolt el problema amb npm 6.12.0 que mostra un avís sobre l'ús d'una versió no compatible.

Recordem que la plataforma Node.js es pot utilitzar tant per al suport del servidor d'aplicacions web com per crear programes habituals de xarxa de servidor i client. Per ampliar la funcionalitat de les aplicacions per a Node.js, un gran nombre de col·lecció de mòduls, en el qual es poden trobar mòduls amb la implementació de servidors i clients HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, mòduls per a la integració amb diferents frameworks web, gestors WebSocket i Ajax, connectors a DBMS (MySQL, PostgreSQL, SQLite). , MongoDB ), motors de plantilles, motors CSS, implementacions d'algoritmes criptogràfics i sistemes d'autorització (OAuth), analitzadors XML.

Per gestionar un gran nombre de sol·licituds paral·leles, Node.js utilitza un model d'execució de codi asíncron basat en el processament d'esdeveniments sense bloqueig i en la definició de controladors de devolució de trucada. Els mètodes admesos per a la multiplexació de connexions inclouen epoll, kqueue, /dev/poll i select. La biblioteca s'utilitza per multiplexar connexions libuv, que és una superestructura libev en sistemes Unix i per IOCP a Windows. S'utilitza una biblioteca per crear un grup de fils libeio, per realitzar consultes DNS en mode no bloquejador està integrat c-ares. Totes les trucades al sistema que causen bloqueig s'executen dins del grup de fils i després, com els controladors de senyals, tornen el resultat del seu treball a través d'una canonada sense nom. L'execució del codi JavaScript s'assegura mitjançant l'ús d'un motor desenvolupat per Google V8 (A més, Microsoft està desenvolupant una versió de Node.js amb el motor Chakra-Core).

En el seu nucli, Node.js és similar als frameworks Perl AnyEvent, Ruby Event Machine, Python Twisted и implementació esdeveniments a Tcl, però el bucle d'esdeveniments a Node.js està ocult per al desenvolupador i s'assembla a la gestió d'esdeveniments en una aplicació web que s'executa en un navegador. Quan escriu aplicacions per a node.js, cal tenir en compte les especificitats de la programació basada en esdeveniments, per exemple, en lloc de fer "var resultat = db.query("select..");" amb l'espera de la finalització del treball i el processament posterior dels resultats, Node.js utilitza el principi d'execució asíncrona, és a dir. el codi es transforma en “db.query(“seleccionar..”, funció (resultat) {processament de resultats});”, en el qual el control passarà immediatament a més codi i el resultat de la consulta es processarà a mesura que arribin les dades. .

Font: opennet.ru

Afegeix comentari