Lanzamiento de Node.js 13.0 de JavaScript del lado del servidor

Disponible relizar Node.js 13.0,plataformas para ejecutar aplicaciones de red en JavaScript. Al mismo tiempo, se completó la estabilización de la rama anterior de Node.js 12.x, que se transfirió a la categoría de versiones de soporte a largo plazo, cuyas actualizaciones se publican durante 4 años. El soporte para la rama LTS anterior de Node.js 10.0 durará hasta abril de 2021, y el soporte para la última rama LTS 8.0 hasta enero de 2020.

El principal mejoras:

  • Motor V8 actualizado a la versión 7.8, que utiliza nuevas técnicas de optimización del rendimiento, mejora la desestructuración de objetos, reduce el consumo de memoria y reduce el tiempo de preparación para la ejecución de WebAssembly;
  • El soporte total para la internacionalización y Unicode basado en biblioteca está habilitado de forma predeterminada. UCI (Componentes internacionales para Unicode), que permite a los desarrolladores escribir código secundario trabajar con diferentes idiomas y configuraciones regionales. El módulo full-icu ahora está instalado de forma predeterminada;
  • API estabilizada Hilos de trabajadores, permitiendo crear bucles de eventos de subprocesos múltiples. La implementación se basa en el módulo work_threads, que le permite ejecutar código JavaScript en múltiples subprocesos paralelos. También se ha incluido soporte estable para la API Workers Threads en la rama LTS de Node.js 12.x;
  • Se han aumentado los requisitos para las plataformas. Para montaje ahora necesario al menos macOS 10.11 (requiere Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Soporte mejorado para Python 3. Si el sistema tiene Python 2 y Python 3, aún se usa Python 2, pero se agregó la capacidad de compilar cuando solo Python 3 está instalado en el sistema;
  • Se ha eliminado la antigua implementación del analizador HTTP (“—http-parser=legacy”). Llamadas y propiedades eliminadas o obsoletas FSWatcher.prototype.start(), ChildProcess._channel, método open() en objetos ReadStream y WriteStream, request.connection, Response.connection, module.createRequireFromPath();
  • Siguiente salió actualización 13.0.1, que solucionó rápidamente varios errores. En particular, se resolvió el problema con npm 6.12.0 que mostraba una advertencia sobre el uso de una versión no compatible.

Recordemos que la plataforma Node.js se puede utilizar tanto para el soporte del servidor de aplicaciones web como para la creación de programas de red de cliente y servidor comunes. Para ampliar la funcionalidad de las aplicaciones para Node.js, una gran cantidad de colección de módulos, en el que puede encontrar módulos con la implementación de servidores y clientes HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, módulos para integración con varios frameworks web, manejadores WebSocket y Ajax, conectores a DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), motores de plantillas, motores CSS, implementaciones de algoritmos criptográficos y sistemas de autorización (OAuth), analizadores XML.

Para manejar una gran cantidad de solicitudes paralelas, Node.js utiliza un modelo de ejecución de código asincrónico basado en el procesamiento de eventos sin bloqueo y la definición de controladores de devolución de llamada. Los métodos admitidos para multiplexar conexiones incluyen epoll, kqueue, /dev/poll y select. La biblioteca se utiliza para multiplexar conexiones. libuv, que es una superestructura sobre libre en sistemas Unix y sobre IOCP en Windows. Se utiliza una biblioteca para crear un grupo de subprocesos. libéio, para realizar consultas DNS en modo sin bloqueo está integrado c-are. Todas las llamadas al sistema que causan el bloqueo se ejecutan dentro del grupo de subprocesos y luego, al igual que los manejadores de señales, pasan el resultado de su trabajo a través de una tubería sin nombre. La ejecución del código JavaScript está garantizada mediante el uso de un motor desarrollado por Google. V8 (Además, Microsoft está desarrollando una versión de Node.js con el motor Chakra-Core).

En esencia, Node.js es similar a los marcos. Perl cualquier evento, Máquina de eventos Ruby, Python retorcido и implementación eventos en Tcl, pero el bucle de eventos en Node.js está oculto para el desarrollador y se asemeja al manejo de eventos en una aplicación web que se ejecuta en un navegador. Al escribir aplicaciones para node.js, es necesario tener en cuenta las características específicas de la programación basada en eventos, por ejemplo, en lugar de hacer “var result = db.query(“select..”);” Al esperar la finalización del trabajo y el posterior procesamiento de los resultados, Node.js utiliza el principio de ejecución asincrónica, es decir. el código se transforma en “db.query(“select..”, function (resultado) {procesamiento de resultados});”, en el que el control pasará inmediatamente a otro código y el resultado de la consulta se procesará a medida que lleguen los datos. .

Fuente: opennet.ru

Añadir un comentario