Tutorial básico de Node.js

01/09/2019 | JavaScript, Node.js | 0 comentarios

Entiende que es Node.js y como te puede ayudar a automatizar tareas e incluso a crear aplicaciones complejas con JavaScript.

Node.js

Node.js es una plataforma para ejecutar JavaScript sin necesidad de un navegador, permite a los desarrolladores con experiencia en JavaScript crear aplicaciones que se pueden ejecutar línea de comandos o de lado de servidor.

Internamente Node.js está construido con el motor V8 de Chrome lo que permite soporte de todos los métodos de ECMAScript.

Diferencias entre Node.js y Browser

Node.js permite ejecutar JavaScript, pero con algunas diferencias:

  • En Node.js no existen los objetos document y window que son propios del navegador.
  • En Node.js se puede usar ES6 de forma nativa, no depende del navegador del cliente.
  • En Node.js no se necesita Babel para convertir a versiones anteriores de ECMAScript.
  • En Node.js se puede utilizar require() para importar módulos.
  • En Node.js existen módulos adicionales cómo fs, http entre otros.

En resumen, podemos crear aplicaciones con JavaScript de manera semejante a otros lenguajes como PHP, Perl, etc.

Como utilizar Node.js

Para usar Node.js debes tener instalado el motor de ejecución, este motor depende de tu sistema operativo y lo puedes descargar en Download Node.js.

Se puede interactuar con el motor de Node.js en línea de comandos.

Para verificar la instalación:

node --version

Para ejecutar una aplicación en Node.js se utiliza el nombre del archivo .js:

node file-name.js

Ejemplos de uso

Como primer ejemplo vamos a utilizar la función console.log que devuelve un texto a la consola del usuario.


// file: hola-mundo.js
let message = 'Hola mundo';
console.log(message);

Cómo segundo ejemplo vamos a listar los archivos dentro de una carpeta, para ello usamos el módulo fs de Node.js que permite acceder a los archivos y carpetas del sistema operativo. Para utilizar el módulo lo importamos con el método require().


// file: filetree.js
const fs = require('fs');

fs.readdir('./', (err, files) => {
  files.forEach(function (file) {
    console.log(file);
  });
});

Como tercer ejemplo utilizamos el módulo http que permite manejar el protocolo HTTP y por consiguiente crear un servidor Web, en el ejemplo creamos un servidor web en el puerto 3000 y a todas las peticiones le devolvemos el mismo texto.


const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hola mundo\n');
});

El resultado se puede revisar con un navegador en http://127.0.0.1:3000/

Node Package Manager (npm)

Una de las ventajas de Node.js es que existe un repositorio de módulos que resuelven diferentes tareas y que han sido creados por la comunidad.

La lista de módulos adicionales utilizados se registran en el archivo package.json, mientras que el contenido de estos componentes se descargan y almacenan en la carpeta node_modules.

Para manejo estos módulos se utiliza comando npm que viene incluido en la instalación de Node.js.

Para verificar la versión de npm:

npm --version

Para inicializar el archivo package.json:

npm init

Para instalar un módulo:

npm install module-name

Ejemplo

Como ejemplo vamos a crear un script que compile los archivos Sass de una carpeta, para ello vamos a utilizar dos modulos adicionales.

  • nodes-sass incluye el preprocesador de Sass en Node.js
  • glob permite buscar archivos de usando patrones.

Inicializamos npm para el proyecto e instalamos los módulos adicionales:


npm init
npm install node-sass
npm install glob

Una vez instalados los módulos creamos el script para compilar Sass: primero se utiliza el módulo glob para buscar los archivos con la extensión .scss, recorremos uno a uno los archivos utilizando el módulo path para obtener el nombre del archivo y renombrarlo con la extensión .css, finalmente utilizamos el módulo node-sass para generar los archivos CSS.


// file: sass.js
const sass = require('node-sass'),
  glob = require('glob'),
  path = require('path'),
  fs = require('fs');

let src = 'sass/*.scss',
  dest = 'css/';

glob(src, (err, files) => {

  files.forEach((file) => {
    sass.render({ file: file }, (error, result) => {
      
      let outFile = (path.basename(file)).replace('.scss', '.css');
      fs.writeFile(dest + outFile, result.css, catchError);
      console.log('Compiled: ' + outFile);
      
    });
  });
  
});

Para simplificar el ejemplo hemos obviado verificar si existen errores en los procesos.

Conclusiones

Con Node.js se puede ejecutar JavaScript sin necesidad de un navegador aprovechando las bondades de ES6 de forma nativa, además se puede acceder a módulos extras creados por la comunidad que permiten automatizar tareas e incluso crear aplicaciones complejas.

Referencias

Envíar Comentario

En este sitio los comentarios se publican previa aprobación del equipo de Kodetop. Evita los comentarios ofensivos, obscenos o publicitarios. Si deseas publicar código fuente puedes hacerlo entre las etiquedas <pre></pre>