Prueba de Node.js

Completado

En esta unidad creará y ejecutará un script de Node.js.

Inicio del contenedor de desarrollo en un explorador

Un entorno de contenedor de desarrollo está disponible con todas las dependencias necesarias para completar todos los ejercicios de este proyecto. Puede ejecutar el contenedor de desarrollo en GitHub Codespaces en un explorador o localmente usando Visual Studio Code.

GitHub Codespaces ejecuta un contenedor de desarrollo administrado por GitHub con Visual Studio Code para la web como interfaz de usuario. Para el entorno de desarrollo más sencillo, use GitHub Codespaces para tener las herramientas de desarrollo y las dependencias correctas instaladas previamente para completar este módulo de formación.

Importante

Todas las cuentas de GitHub pueden usar Codespaces durante un máximo de 60 horas gratis cada mes con 2 instancias principales. Para obtener más información, consulte Almacenamiento y horas de núcleo incluidas mensualmente en GitHub Codespaces.

  1. Inicie el proceso para crear una nueva instancia de GitHub Codespace en la rama main del repositorio de GitHub MicrosoftDocs/node-essentials.

  2. En la página Crear codespace, revise las opciones de configuración del codespace y seleccione Crear codespace

    Captura de pantalla de la pantalla de confirmación antes de crear un nuevo codespace.

  3. Espere a que se inicie Codespace. Este proceso de startup puede tardar unos minutos.

  4. Abra un nuevo terminal en el codespace.

    Sugerencia

    Puede usar el menú principal para ir a la opción de menú Terminal y, a continuación, seleccionar la opción Nuevo terminal.

    Captura de pantalla de la opción de menú Codespaces para abrir un nuevo terminal.

REPL de Node.js

Node.js tiene un modo read-eval-print loop (REPL) integrado que resulta útil para la evaluación rápida de código y la experimentación. El modo REPL es un entorno de consola interactivo en el que se puede escribir código de JavaScript para que Node.js lo interprete y lo ejecute y luego imprima el resultado.

El modo REPL de Node.js funciona de la siguiente manera:

  • Lectura: lee y analiza la entrada de código de JavaScript del usuario (o muestra un error si el código no es válido).
  • Evaluación: evalúa el código de JavaScript especificado.
  • Impresión: imprime los resultados calculados.
  • Bucle: itera en bucle y espera a que el usuario escriba un comando nuevo (o sale si el usuario presiona Ctrl-C dos veces).

Para iniciar el modo REPL, ejecute el programa node en el terminal del contenedor de desarrollo.

Nota:

Haga clic con el botón derecho y seleccione >Pegar para escribir un comando copiado en la consola de REPL.

node

Se abre el entorno de REPL. Debería ver el mensaje de REPL:

>

Escriba el código siguiente en la consola de REPL (haga clic con el botón derecho y seleccione >Pegar):

console.log('Hello World, from the REPL.')

Este código imprime un mensaje "Hola mundo, desde REPL." en la consola de REPL:

Hello World, from the REPL.

Para salir de la consola de REPL, escriba Ctrl + C dos veces.

Creación de un script de Node.js

Node.js también admite la ejecución de código desde archivos.

  1. Cree una carpeta denominada hello-world en el contenedor de desarrollo.

  2. Cree un archivo denominado index.js en la nueva carpeta.

  3. Copie el código siguiente en el archivo index.js:

    console.log('Hello World, from a script file.');
    
  4. Abra la nueva carpeta en un terminal haciendo clic con el botón derecho en el nombre de la carpeta y seleccionando Abrir en el terminal integrado.

  5. En el terminal, escriba el comando node seguido del nombre del archivo index.js:

    node index.js
    

    Debería ver el siguiente resultado:

     Hello World, from a script file.
    

Ya ha ejecutado el primer código propio de JavaScript Node.js.

  • Pregunta: ¿Es console.log sincrónico o asincrónico?
  • Respuesta: El método console.log aparece en el desarrollo para ejecutarse inmediatamente y, por tanto, se supone que es asincrónico. No hay garantía de comportamiento asincrónico para este método, por lo que debe considerarse sincrónico. Dado que la ejecución del código puede bloquearse hasta que finalice el método console.log, se le advierte que no mantenga instrucciones console.log en el código en producción.

Adición de una función asincrónica

El siguiente código asincrónico general solicita un origen de datos JSON HTTP y, a continuación, lo muestra.

  1. Agregue el código siguiente al archivo index.js para crear una solicitud HTTP asincrónica:

    const https = require('https');
    
    console.log(`start`);
    
    try{
        const res = await https.get('https://nodejs.org/dist/index.json');
    
        console.log(res.statusCode);
    } catch( error ){
        console.log(error);
    }
    
    console.log(`end`);
    

    El método https.get realiza una solicitud HTTP al sitio web node.js y devuelve la respuesta. El método get toma dos parámetros: la dirección URL para solicitar y una función de devolución de llamada a la que se llama cuando se recibe la respuesta. La función de devolución de llamada toma un único parámetro, res, que es el objeto de respuesta.

  2. Vuelva a ejecutar la aplicación:

    node index.js
    
  3. El orden de los registros de la consola es el siguiente:

    start
    end
    200
    

En la salida, puede ver el bucle de eventos en acción. Se llama al método HTTP y se coloca en la cola de tareas, esperando a que se devuelva. El bucle de eventos toma la siguiente tarea, que es el método console.log.

Detener el contenedor de desarrollo

La eliminación del entorno de GitHub Codespaces garantiza que pueda maximizar la cantidad de derechos de horas gratuitas por núcleo que obtiene para su cuenta.

Importante

Para obtener más información sobre los derechos de la cuenta de GitHub, consulte Almacenamiento y horas de núcleo incluidas mensualmente en GitHub Codespaces.

  1. Inicie sesión en el panel de GitHub Codespaces (https://github.com/codespaces).

  2. Busque los espacios de código que se ejecutan actualmente procedentes del repositorio de GitHub MicrosoftDocs/node-essentials.

    Captura de pantalla de todos los espacios de código en ejecución, incluidos su estado y las plantillas.

  3. Abra el menú contextual delcodespace y seleccione Eliminar.

    Captura de pantalla del menú contextual de un solo codespace con la opción para eliminar resaltada.