Tutorial: Node.js para principiantes

Si no está familiarizado con Node.js, esta guía le ayudará a conocer algunos aspectos básicos.

Requisitos previos

A aquellos principiantes que nunca hayan usado Node.js y lo estén probado, se les recomienda instalarlo directamente en Windows. Para más información, consulte ¿Debo realizar la instalación de Node.js en Windows o en el Subsistema de Windows para Linux?

Prueba de NodeJS con Visual Studio Code

Si aún no ha instalado Visual Studio Code, vuelva a la sección de requisitos previos anterior y siga los pasos de instalación vinculados para Windows o WSL.

  1. Abra la línea de comandos, cree un nuevo directorio con mkdir HelloNode y, a continuación, vaya al directorio con: cd HelloNode

  2. Cree un archivo de JavaScript denominado "app.js" con una variable denominada "msg" dentro de: echo var msg > app.js.

  3. Abra el directorio y el archivo app.js en VS Code, para lo que debe usar el comando: code .

  4. Agregue una variable de cadena simple ("Hola mundo") y, a continuación, envía el contenido de la cadena a la consola. Para ello, escribe lo siguiente en el archivo "app.js":

    var msg = 'Hello World';
    console.log(msg);
    
  5. Ejecutar el archivo "app.js" con Node.js. Abre el terminal en VS Code. Para ello, selecciona Ver>Terminal (o selecciona Ctrl+` mediante el carácter de tilde grave). Si necesitas cambiar el terminal predeterminado, selecciona el menú desplegable y elige Seleccionar el shell predeterminado.

  6. En el terminal, escribe: node app.js. Deberías ver la salida: "Hola mundo".

Nota

Ten en cuenta que, al escribir console en el archivo "app.js", VS Code muestra las opciones admitidas relacionadas con el objeto console que puedes elegir al usar IntelliSense. Intenta experimentar con IntelliSense utilizando otros objetos de JavaScript.

Creación de la primera aplicación web de NodeJS mediante Express

Express es una plataforma de Node.js mínima, flexible y simplificada que facilita el desarrollo de una aplicación web que pueda controlar varios tipos de solicitudes, como GET, PUT, POST y DELETE. Express incluye un generador de aplicaciones que se creará automáticamente una arquitectura de archivos para la aplicación.

Para crear un proyecto con Express.js:

  1. Abre la línea de comandos (símbolo del sistema, PowerShell o la prefieras).

  2. Crea la nueva carpeta de proyecto mkdir ExpressProjects y accede al directorio cd ExpressProjects.

  3. Usa Express para crear una plantilla de proyecto HelloWorld: npx express-generator HelloWorld --view=pug

    Nota

    Aquí usamos el comando npx para ejecutar el paquete de Node Express.js sin instalarlo realmente (o bien instalándolo temporalmente en función de cómo quieras imaginarlo). Si intentas usar el comando express o comprobar la versión de Express instalada mediante express --version, recibirás una respuesta que te indicará que no se encuentra Express. Si quieres instalar Express de forma global para usarlo una y otra vez, utiliza npm install -g express-generator. Puedes ver una lista de los paquetes que ha instalado npm mediante npm list. Se ordenarán por profundidad (número de profundización de los directorios anidados). Los paquetes que instaló estarán en la profundidad 0. Las dependencias de dichos paquetes estarán en la profundidad 1, las dependencias adicionales en la profundidad 2, etc. Para más información, consulte el artículo sobre la diferencia entre npx y npm en StackOverflow.

  4. Para examinar los archivos y las carpetas que Express ha incluido, abre el proyecto en VS Code con code ..

    Los archivos que genera Express crearán una aplicación web que utiliza una arquitectura que puede parecer un poco abrumadora al principio. En la ventana del Explorador de VS Code (presiona Ctrl + Mayús + E para verla), observarás que se han generado los archivos y las carpetas siguientes:

    • bin. contiene el archivo ejecutable que inicia la aplicación. Activa un servidor (en el puerto 3000, si no se indica ninguna alternativa) y configura un control de errores básico.
    • public. contiene todos los archivos de acceso público, incluidos archivos de JavaScript, hojas de estilos de CSS, archivos de fuentes, imágenes y cualquier otro recurso que los usuarios necesitan cuando se conectan al sitio web.
    • routes. contiene todos los controladores de ruta de la aplicación. Dos archivos, index.js y users.js, se generan automáticamente en esta carpeta para servir como ejemplos de cómo separar la configuración de ruta de la aplicación.
    • views. contiene los archivos que usa el motor de plantillas. Express está configurado para buscar aquí una vista coincidente cuando se llama al método de representación. El motor de plantillas predeterminado es Jade, pero está en desuso a favor de Pug, por lo que usamos la marca --view para cambiar el motor de vistas (plantillas). Para ver las opciones de la marca --view y otras, use express --help.
    • app.js. el punto inicial de la aplicación. Carga todo y empieza a atender las solicitudes de usuario. En esencia, se trata del elemento que aglutina todas las piezas.
    • package.json. contiene la descripción del proyecto, el administrador de scripts y el manifiesto de la aplicación. Su principal objetivo es hacer el seguimiento de las dependencias de la aplicación y sus respectivas versiones.
  5. Ahora debes instalar las dependencias que Express usa para compilar y ejecutar la aplicación HelloWorld Express (los paquetes usados para tareas como la ejecución del servidor, tal como se define en el archivo package.json). En VS Code, abre el terminal mediante las opciones Ver>Terminal (o presiona Ctrl + `, con el carácter de tilde grave); asegúrate de que todavía estás en el directorio del proyecto "HelloWorld". Instala las dependencias de paquetes de Express con:

    npm install
    
  6. En este momento, tiene el marco de trabajo configurado para una aplicación web de varias páginas con acceso a una gran variedad de API y de métodos de utilidad HTTP y middleware, lo que facilita la creación de una API sólida. Inicia la aplicación Express en un servidor virtual. Para ello, escribe:

    npx cross-env DEBUG=HelloWorld:* npm start
    

    Sugerencia

    La parte DEBUG=myapp:* del comando anterior significa que estás indicando a Node.js que desea activar el registro con fines de depuración. No olvides reemplazar "myapp" por el nombre de la aplicación. Puedes encontrar el nombre de la aplicación en el archivo package.json bajo la propiedad "name". Al usar npx cross-env se establece la variable de entorno DEBUG en cualquier terminal, pero también se puede establecer con la forma específica del terminal. El comando npm start indica a npm que ejecute los scripts en el archivo package.json.

  7. Ahora, para ver la aplicación en ejecución, puedes abrir un explorador web e ir a localhost:3000.

    Screenshot of Express app running in a browser

  8. Ahora que la aplicación HelloWorld Express se ejecuta localmente en el explorador, intenta realizar un cambio; para ello, abre la carpeta "views" en el directorio del proyecto y selecciona el archivo "index.pug". Una vez abierto, cambia h1= title a h1= "Hello World!" y selecciona Guardar (Ctrl + S). Para ver el cambio, actualiza la URL de localhost:3000 en el explorador web.

  9. Para detener la ejecución de la aplicación Express, escribe lo siguiente en el terminal: Ctrl+C

Uso de un módulo de Node.js

Node.js tiene herramientas para ayudar con el desarrollo de aplicaciones web de servidor, algunas integradas y muchas más disponibles a través de npm. Estos módulos pueden ayudar con muchas tareas:

Herramienta Se utiliza para
gm, sharp Manipulación de imágenes, incluida la edición, el cambio de tamaño, la compresión, etc., directamente en el código de JavaScript
PDFKit Generación de archivos PDF
validator.js Validación de cadenas
imagemin, UglifyJS2 Minificación
spritesmith Generación de hojas de sprite
winston Registro
commander.js Creación de aplicaciones de línea de comandos

Usaremos el módulo del sistema operativo integrado para obtener información sobre el sistema operativo del equipo:

  1. En la línea de comandos, abre la CLI de Node.js. Verás el mensaje >, que te indica que estás usando Node.js después de escribir: node.

  2. Para identificar el sistema operativo que estás usando actualmente (que debe devolver una respuesta que te indique que estás en Windows), escribe: os.platform().

  3. Para comprobar la arquitectura de la CPU, escribe: os.arch().

  4. Para ver las CPU disponibles en el sistema, escriba: os.cpus().

  5. Para salir de la CLI de Node.js escribe .exit o selecciona Ctrl + C dos veces.

    Sugerencia

    Puedes usar el módulo de sistema operativo de Node.js para realizar acciones como comprobar la plataforma y devolver una variable específica de la plataforma: Win32/.bat para el desarrollo de Windows, darwin/.sh para Mac/UNIX, Linux, SunOS, etc. (por ejemplo, var isWin = process.platform === "win32";).