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
ywindow
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.
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>