Hola Mundo en NodeJS

  • Por
Mostramos el Hola Mundo en NodeJS y vemos cómo ejecutar algunas instrucciones básicas que están en el core del lenguaje, junto con el flujo de trabajo que usarás para lanzar programas Node.

En el Manual de NodeJS hemos conocido aspectos básicos sobre el lenguaje. Ahora que lo conocemos un poco mejor y que ya lo tenemos instalado, podemos escribir nuestro primer programa, usando instrucciones básicas del lenguaje.

Otra cosa importante es aprender a trabajar en el flujo habitual de ejecución de aplicaciones Node. Todo esto es bastante elemental, por lo que si ya tienes idea, quizás te interese ya acceder al siguiente artículo con características de la programación de Node, como la asincronía o la programación dirigida por eventos.

Escribir un programa con NodeJS

Los programas en NodeJS se escriben mediante cualquier editor de texto plano. Cualquier editor básico es suficiente, así que cada persona elegirá aquel que prefiera.

Generalmente a los archivos Javascript les pondrás extensión ".js", aunque la verdad podrían tener cualquier extensión que quieras, ya que lo que importa es que tengan texto plano. Lo colocarás en cualquier carpeta de tu sistema y de momento no necesitamos ninguna estructura de directorios, con tener el archivo suelto será suficiente, aunque más adelante cuando tengamos nuestras aplicaciones complejas, con sus módulos de dependencias sí comenzarás a tener una estructura de carpetas bien definida.

El código de nuestro primer programa será tan sencillo como esto:

console.log('hola mundo Node!');

Lo guardamos en un archivo, por ejemplo "holamundo.js". Es indiferente el nombre del archivo, lo importante es que sepas dónde lo has dejado, porque para ejecutarlo tendrás que situarte en esa carpeta desde tu terminal.

Ejecutar un programa Node

Abrimos el terminal de línea de comandos. Esta operación será dependiente de tu sistema operativo.

Nota: Aunque imaginamos que debes controlar este aspecto, decir que nos sirve cualquier terminal. Linux y Mac tienen terminales suficientemente buenos para nuestro día a día, pero en Windows muchas veces el terminal que nos viene se quedará pequeño. En Windows, depende de la versión, tenemos un terminal (ejecutable escribiendo "cmd" desde el menú de iniciar aplicaciones) básico que responde a comandos del antiguo MS-DOS. Pero ahora muchas versiones ya tienen instalado "power shell" que está bastante mejor. Yo por mi parte prefiero "git bash" que se instala cuando instalas "Git" en tu sistema. Otras personas prefieren el terminal "cmder".

Nos situamos en la carpeta donde hemos colocado el archivo "holamundo.js".

cd mi/proyecto/esta/ruta/debes/saberla/tu

Luego lanzamos el proceso de NodeJS indicando el nombre del archivo que vas a ejecutar:

node holamundo.js

Obviamente, si llamaste al archivo con otro nombre, colocarás ese nombre después de la palabra "node".

Entonces deberías de ver la salida del programa por la misma terminal "hola mundo Node!".

Otras instrucciones básicas del core de Node

No vamos a entrar en muchos detalles de sintaxis en este manual, pues es la misma sintaxis que conoces ya de Javascript. Si no es tu caso y comienzas en NodeJS sin conocer Javascript te recomendamos pasarte por el Manual de Javascript. En la primera parte de ese manual encontrarás todo lo relacionado a la sintaxis, variables, operadores, estructuras de control, etc.

Ahora vamos a ver qué otras cosas simples de lo que ya conoces de Javascript puedes aplicar en Node.

Por ejemplo, podríamos complicar nuestro ejercicio para incluir un bucle:

for (var i=0; i<10; i++) {
  console.log('hola mundo ' + i);
}

Ahora vamos a ver cómo trabajar con alguna de las funciones básicas del API de Javascript, como es el caso del setTimeout(), que nos sirve para ejecutar instrucciones con un retardo expresado en milisegundos.

setTimeout(function() {
  console.log('Hola NodeJS');
}, 3000);
Nota: Si te extraña ver una función como parámetro enviado a otra función, lo que se conoce habitualmente como una función "callback", es que quizás te falta un poco de base de Javascript para entrar en NodeJS. Esa función anónima (porque no tiene nombre) se ejecutará solo cuando toque. De nuevo te recomendamos la lectura del Manual de Javascript para ver estas cosas básicas del lenguaje.

Si lo ejecutas verás que tarda 3 segundos antes de mostrar el mensaje "Hola NodeJS".

Parecido a setTimeout() tenemos setInterval() que ejecuta un código cada un intervalo de tiempo, también en milisegundos.

setInterval(function() {
  console.log('Hola NodeJS');
}, 1000);

En este caso verás que tu consola muestra un mensaje cada segundo, dejando el proceso abierto. Solo cerrando la ventana del terminal, o bien presionando la combinación de teclas CTRL+C, o lo que corresponda en tu sistema, se interrumpirá la ejecución del programa.

Como puedes ver, muchas de las cosas que ya sabes de Javascript se pueden usar en NodeJS. Solo tienes que llevar en consideración que no estás dentro de un navegador, por lo que no tendría sentido acceder a objetos del DOM o del navegador en sí, como "document" o "window".

console.log(window);

Esa línea te dirá que no existe tal variable "window", con un mensaje como este "ReferenceError: window is not defined".

Algo que tienes en NodeJS a nivel global, parecido a la existencia el objeto "window" en un navegador, es un objeto "global", del que cuelgan diversas propiedades e incluso métodos como los que acabamos de hacer uso, setTimeout() y setInterval() entre otros.

Puedes hacer un console.log() del objeto global para ver su contenido.

console.log(global);

Ahora que ya sabes que existe ese objeto, la operación de setInterval() la podrías haber expresado así:

global.setInterval(function() {
  console.log('Hola NodeJS con global');
}, 1000);

De momento es todo. Practica un poco y continua la lectura por el artículo sobre las características de la programación en la plataforma Node.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

José

05/1/2017
diferencias en cliente
Muy interesante destacar las diferencias con el Javascript del lado del cliente, como el tema del objeto window que no existe en Node. Nos ayuda bastante a ir clarificando las ideas.