Contenidos
En abril de 2022, se lanzó NodeJS Node v18. La actualización de Node v18 fue una de las actualizaciones más esperadas de Node v14, que agregó la API de almacenamiento local asíncrono, una interfaz de sistema de ensamblaje web (WASI) y soporte para módulos ECMAScript.
La actualización v18 agrega varias mejoras a NodeJS, incluida una API de búsqueda que está habilitada globalmente de manera predeterminada, soporte para la API de transmisión web y un módulo principal de ejecución de pruebas. Aquí cubrimos la mayoría de los cambios significativos en NodeJS en v18.
1. La API de recuperación
La API de recuperación proporciona una interfaz para acceder y manipular solicitudes y respuestas HTTP. Antes de NodeJS v18, las solicitudes HTTP realizadas con NodeJS requerían bibliotecas de terceros como axio Y recuperación de nudos o lo complicado http o https paquete.
NodeJS v18 hace que la API de recuperación esté disponible en el ámbito global de forma predeterminada. La API de recuperación global elimina la necesidad de bibliotecas de terceros como axio y el código detallado asociado con https paquete que recupera recursos de forma asíncrona a través de una red.
Aquí hay un ejemplo del uso de la API:
const getData = async function () {
try {
const res = await fetch("https:
const data = await res.json();
console.log(data);
} catch (error) {
console.log(`Something went wrong, ${error}`);
}
};
getData();
los obtener datos la función anterior envía a OBTENER solicitud para recuperar recursos de “https://ejemplo.com/usuarios”. La API de búsqueda también acepta un segundo parámetro opcional, un objeto de opciones. Los objetos de opción deben contener detalles sobre la solicitud. Por ejemplo:
const userData = {
name: "Jon Snow",
age: 25,
gender: "M",
};
const postData = async function (data) {
try {
const res = await fetch("https:
method: "POST",
body: JSON.stringify(data),
});
const responseData = await res.json();
console.log(
`The request was sucessful, Here are the details: ${responseData}`
);
} catch (error) {
console.log(`The request was unsucessful, Here are the details: ${error}`);
}
};
postData(userData);
Aunque la API de recuperación todavía está experimentaldebería funcionar bien para la mayoría de los usuarios.
2. Soporte para la API de Web Streams
Piense en aplicaciones multimedia o en tiempo real; este es un caso de uso fundamental de la API de flujos web. La Web Stream API es un conjunto de interfaces que permiten la descomposición programática de un gran recurso recibido a través de una red en pequeños fragmentos y luego lo procesan poco a poco.
Un ejemplo de un flujo es el cuerpo de respuesta devuelto por un éxito yendo a tomar solicitud. El cuerpo de la respuesta es como LegibleStream.
NodeJS v18 expone un experimental implementación de la API de flujo web. Con esta actualización, las API de flujo web ahora están disponibles tanto en el cliente como en el servidor, lo que facilita el desarrollo.
Puede encontrar una lista de transmisiones admitidas actualmente en las notas de la versión oficial.
3. El módulo de prueba
En versiones anteriores de NodeJS, las pruebas sin bibliotecas de terceros se realizaban con el acertar biblioteca.
los acertar La biblioteca facilitó la escritura de pruebas simples, pero tenía limitaciones significativas que dificultaban el trabajo con múltiples conjuntos de pruebas. Estas limitaciones han fomentado la necesidad de bibliotecas de terceros como Jest para ejecutar pruebas más avanzadas.
NodeJS v18 elimina la necesidad de bibliotecas de terceros con la introducción del módulo principal de ejecución de pruebas de NodeJS. El ejecutor de pruebas admite funciones como subpruebas, pruebas de omisión, pruebas de devolución de llamada, etc., al igual que Jest.
Para usar el corredor de prueba, necesita importar acertar de acertar Y prueba de nudo: prueba. Nota la “nodo:” prefijo; es el nuevo protocolo de nodo que distingue los paquetes de nodo central de los paquetes creados por el usuario.
const assert = require("assert");
const test = require("node:test");
Aquí hay un ejemplo de una prueba simple usando el módulo de ejecutor de pruebas:
test("Check if strings are the same",
Los resultados de la prueba mostrados por el corredor de la prueba estarán en formato TAP (Test Anything Protocol). Tenga en cuenta que esta función aún es experimental y puede cambiar en cualquier momento.
4. Otras actualizaciones y correcciones
La actualización de Node v18 también incluye una actualización del motor v8 a la versión 10.1. El motor v8 es el tiempo de ejecución de JavaScript utilizado por NodeJS para ejecutar JavaScript.
La actualización v8 hace que los métodos de la matriz encontrar el último Y buscarÚltimoÍndice disponible en NodeJS y mejora el rendimiento de los campos de clase y los métodos de las clases privadas.
NodeJS también expone las siguientes API en el ámbito global en la actualización de Node v18:
Actualizar al nodo v18
Con Node v18, puede probar una aplicación completa sin bibliotecas externas, obtener recursos de forma asincrónica sin bibliotecas externas y tener transmisiones web habilitadas en su servidor.
Sin embargo, vale la pena señalar que estas funciones aún son experimentales y pueden cambiar en cualquier momento. Puede actualizar a NodeJS v18 utilizando el enlace de descarga oficial.