Prueba de Node.js
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.
Inicie el proceso para crear una nueva instancia de GitHub Codespace en la rama
main
del repositorio de GitHubMicrosoftDocs/node-essentials
.En la página Crear codespace, revise las opciones de configuración del codespace y seleccione Crear codespace
Espere a que se inicie Codespace. Este proceso de startup puede tardar unos minutos.
Abra un nuevo terminal en el codespace.
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.
Cree una carpeta denominada hello-world en el contenedor de desarrollo.
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.
En el terminal, inicialice el proyecto de nodo.
npm init -y
Instale un paquete de Node,
node-fetch
para realizar solicitudes HTTP asincrónicas.npm install node-fetch
Abra el archivo
package.json
y agregue la siguiente propiedad para permitir async/await de nivel superior."type":"module",
Cree un archivo denominado index.js en la nueva carpeta.
Copie el código siguiente en el archivo index.js:
console.log('Hello World, from a script file.');
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étodoconsole.log
, se le advierte que no mantenga instruccionesconsole.log
en el código en producción.
Adición de una función asincrónica de nivel superior
El siguiente código asincrónico general solicita un origen de datos JSON HTTP y, a continuación, lo muestra.
Agregue el código siguiente al archivo
index.js
para crear una solicitud HTTP asincrónica:import fetch from 'node-fetch'; console.log(`start`); try { const res = await fetch('https://github.com/MicrosoftDocs/node-essentials'); console.log('statusCode:', res.status); } catch (error) { console.log(`error: ${error}`); } console.log(`end`);
El método
https.get
realiza una solicitud HTTP al sitio web node.js y devuelve la respuesta. El métodoget
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.Vuelva a ejecutar la aplicación:
node index.js
El orden de los registros de la consola es el siguiente:
start statusCode: 200 end
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.
Inicie sesión en el panel de GitHub Codespaces (https://github.com/codespaces).
Busque los espacios de código que se ejecutan actualmente procedentes del repositorio de GitHub
MicrosoftDocs/node-essentials
.Abra el menú contextual delcodespace y seleccione Eliminar.