Plataforma JavaScript do servidor Node.js 19.0 dispoñible

Lanzouse Node.js 19.0, unha plataforma para executar aplicacións de rede en JavaScript. Node.js 19 é unha rama de soporte regular con actualizacións dispoñibles ata xuño de 2023. Nos próximos días completarase a estabilización da rama Node.js 18, que recibirá o estado LTS e será compatible ata abril de 2025. O mantemento da rama LTS anterior de Node.js 16.0 durará ata setembro de 2023 e o ano anterior á última rama LTS 14.0 ata abril de 2023.

Melloras principais:

  • Actualizouse o motor V8 á versión 10.7, utilizada en Chromium 107. Entre os cambios no motor en comparación coa rama Node.js 18, destácase a implementación da terceira versión da API Intl.NumberFormat, que engade novas funcións formatRange (), formatRangeToParts() e selectRange(), agrupación de conxuntos, novas opcións para redondear e definir a precisión, a capacidade de interpretar cadeas como números decimais. Tamén se actualizaron as dependencias incluídas llhttp 8.1.0 e npm 8.19.2.
  • Propúxose un comando experimental "node -watch" que implementa un modo de vixilancia que garante que o proceso se reinicie cando cambia o ficheiro importado (por exemplo, se se executa "node -watch index.js", o proceso reiniciarase automaticamente). cando index.js cambia).
  • Para todas as conexións HTTP/HTTPS saíntes, está habilitado o soporte para o mecanismo Keep-Alive HTTP 1.1, que deixa a conexión aberta durante un tempo determinado para procesar varias solicitudes HTTP dentro da mesma conexión. Espérase que Keep-Alive mellore o rendemento e o rendemento. De forma predeterminada, o tempo de espera da conexión está configurado en 5 segundos. Engadiuse compatibilidade para analizar a cabeceira HTTP Keep-Alive nas respostas do servidor á implementación do cliente HTTP e engadiuse a desconexión automática dos clientes inactivos mediante Keep-Alive á implementación do servidor HTTP Node.js.
  • A API WebCrypto foi transferida á categoría estable, con excepción das funcións que utilizan os algoritmos Ed25519, Ed448, X25519 e X448. Para acceder ao módulo WebCrypto agora pode usar globalThis.crypto ou require('node:crypto').webcrypto.
  • Eliminouse a compatibilidade coas ferramentas de rastrexo DTrace, SystemTap e ETW (Rastrexo de eventos para Windows), cuxo mantemento considerouse inadecuado debido á complexidade de mantelo actualizado a falta dun plan de soporte adecuado.

A plataforma Node.js pódese utilizar tanto para o mantemento do servidor de aplicacións web como para a creación de programas habituais de rede de servidor e cliente. Para ampliar a funcionalidade das aplicacións para Node.js, preparouse unha gran colección de módulos, nos que se poden atopar módulos coa implementación de servidores e clientes HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, módulos para a integración. con varios frameworks web, manejadores WebSocket e Ajax, conectores DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motores de modelos, motores CSS, implementacións de algoritmos criptográficos e sistemas de autorización (OAuth), analizadores XML.

Para garantir o procesamento dunha gran cantidade de solicitudes paralelas, Node.js usa un modelo de execución de código asíncrono baseado no manexo de eventos sen bloqueo e na definición de controladores de devolución de chamada. Os métodos compatibles para multiplexar conexións son epoll, kqueue, /dev/poll e select. Para a multiplexación de conexións, úsase a biblioteca libuv, que é un complemento para libev en sistemas Unix e IOCP en Windows. A biblioteca libeio úsase para crear unha agrupación de fíos e c-ares está integrado para realizar consultas DNS en modo sen bloqueo. Todas as chamadas ao sistema que provocan o bloqueo execútanse dentro do grupo de fíos e despois, como os controladores de sinal, transfiren o resultado do seu traballo de volta a través dunha canalización sen nome (tubo). A execución de código JavaScript proporciónase mediante o uso do motor V8 desenvolvido por Google (ademais, Microsoft está a desenvolver unha versión de Node.js co motor Chakra-Core).

No seu núcleo, Node.js é similar aos marcos Perl AnyEvent, Ruby Event Machine, Python Twisted e a implementación de eventos Tcl, pero o bucle de eventos en Node.js está oculto para o desenvolvedor e aseméllase ao manexo de eventos nunha aplicación web en execución. no navegador. Ao escribir aplicacións para node.js, cómpre ter en conta os detalles específicos da programación dirixida por eventos, por exemplo, en lugar de facer "var result = db.query("select..");" coa espera da finalización do traballo e do procesamento posterior dos resultados, Node.js utiliza o principio de execución asíncrona, é dicir. o código transfórmase en "db.query("select..", function (result) {result processing});", no que o control pasará instantáneamente a outro código e o resultado da consulta procesarase a medida que cheguen os datos.

Fonte: opennet.ru

Engadir un comentario