NodeJs va en su versión 18 y dispone de diversas características importantes, grandes integraciones y actualizaciones se suman al ecosistema. En esta publicación desglosáremos lo importante que es esta herramienta tecnológica para la comunidad, sobre que es NodeJs y que nos proporciona esta herramienta y las últimas características más resaltantes de esta nueva versión.

Node.js 18 será la versión "actual" durante los próximos 6 meses y luego será promovida a soporte a largo plazo (LTS) en octubre de 2022. Una vez promovida al soporte a largo plazo, la versión recibirá el nombre en clave de "Hydrogen". Node.js 18 recibirá soporte hasta abril de 2025.

¿Ya sabes lo importante que es NodeJs para la comunidad?

NodeJs ha sido de gran utilidad para los desarrolladores de software, su adopción y satisfacción que ha brindado esta gran herramienta tecnológica en llevar a JavaScript al lado del servidor, día con día se suman nuevos desarrolladores a trabajar y han logrado conformar una gran comunidad que respalda a NodeJs, donde contribuyen a su ecosistema en la creación de nuevos paquetes que facilitan los desarrollos de nuestros proyectos.

¿JavaScript en el lado del servidor?


Así es, recordemos que NodeJs es un runtime de JavaScript construido sobre el motor V8 de Google que nos permite ejecutar JavaScript fuera del contexto del navegador.

Sí has trabajado con JavaScript en el FrontEnd, con NodeJs sabrás cómodamente como crear servidores, y para que su utilización sea más sencilla, NodeJs dispone de un gestor de paquetes llamado NPM (Node Package Manager) que permiten al desarrollador acceder a diferentes paquetes Open Source, son creados por la comunidad que hacen más sencillo instalar, actualizar y desinstalar funcionalidades en tú proyecto.

¿Qué nos proporciona NodeJS?
NodeJs nos brinda la posibilidad de crear servidores u/o APIs en términos técnicos, de una manera práctica y sencilla utilizando JavaScript. También nos proporciona un detector de eventos llamado Eventloop y su función es escuchar cualquier evento producido en NodeJs, y es lo que nos ayudará a que nuestro código se ejecute de una manera asíncrona y no arbitraria. Podemos crear aplicaciones isomórficas, aplicaciones donde su arquitectura de software es 100% JavaScript y utilizando NodeJs podemos hacer SSR o CSR.

Entre las características más resaltantes tenemos 3

  • Integración de Fetch en el ámbito global de Node en estado experimental.
  • Integración de un Módulo de Test Runner en estado experimental.
  • Actualización del Motor V8 en su versión 10.1.

Integración de Fetch Experimental

En NodeJs 18 se integra fetch en el contexto global de Node, esta implementación proviene de la idea de FetchAPI en el navegador, con las versiones anteriores en NodeJS el desarrollador se veía obligado a usar diversos paquetes para poder consumir información desde un servidor a otros servidores, esto llevó a que los desarrolladores del Core de Node utilizarán un módulo llamado undici e inspirado en el paquete node-fetch que originalmente se basó en undici-fetch para poder crear esta API, que simula la funcionabilidad como lo hace en el navegador.

La API seguirá siendo experimental hasta que se añada una mayor cobertura de pruebas y los colaboradores hayan verificado que la API implementa la mayor parte posible de la especificación. Si quieres participar, visita el repositorio nodejs/undici y busca los temas etiquetados con fetch.

Ejemplo de uso de esta API:

const res = await fetch('https://nodejs.org/api/documentation.json');
if (res.ok) {
  const data = await res.json();
  console.log(data);
}

Este sería un ejemplo de cómo se podría consumir información usando fetch en NodeJs 18. Mediante esta adición, se ponen a disposición los siguientes globales: fetch, FormData, Headers, Request, Response.

Es posible desactivar la API proporcionando la bandera de línea de comandos --no-experimental-fetch.

Integración Módulo Test Runner

El desarrollo de las pruebas de código es de vital importancia en cualquiera de nuestros proyectos, los Test reducen los posibles errores que pueden ocurrir en producción. En NodeJs y sus versiones anteriores se usaban librerías como Jest, MochaJs, Supertest. Ahora con la versión 18 de NodeJs podemos hacer nuestras pruebas utilizando el módulo nativo por defecto en esta versión.

Instanciando los módulos usando import

import test from 'node:test'; 
import assert from 'node:assert';

Ejemplo de los test

import test from 'node:test';
test('top level test', async (t) => {
    await t.test('subtest 1', (t) => {
        assert.strictEqual(1, 1);
    });
    await t.test('subtest 2', (t) => {
        assert.strictEqual(2, 2);
    });
});


Actualización del Motor V8 en su versión 10.1.

La actualización del Motor V8 en su versión 10.1 trae las siguientes características en la versión 18 de NodeJs:

  • Los métodos de findLast y findLastIndex en arrays.
  • Mejoras a la API de Intl.Locale.
  • La función Intl.supportedValuesOf.

¡Prueba la nueva versión de Node.js 18!

Plataforma de cursos gratis sobre programación