Formación NodeJS: Como crear módulos en NodeJS I

14-04-2016
 

NodeJS tiene un sistema de creación de módulos muy potente que permite crear aplicaciones que una reutilización de código envidiable. El sistema de creación de módulos es muy flexible, vamos a ver como creamos un módulo.
Lo primero es crear nuestro proyecto e instalar los módulos que vayamos a usar con NPM(Nosotros también podremos subir nuestros propios módulos al repositorio de NPM, pero eso es otra historia):

#Inicializamos el proyecto
npm init
# Como vamos a usar el módulo 'express' lo añadimos
npm install express

NPM instala todos los módulos en la carpeta ‘node_modules’ de nuestro proyecto, nosotros también nos crearemos el nuestro en la carpeta ‘mimodulo’. Lo primero será crear el fichero ‘package.json’ dentro de la carpeta de nuestro proyecto donde describiremos el módulo:

{
  "name":"mimodulo",
  "version":"0.0.1",
  "description":"Mi modulo",
  "author":"Albert Coronado",
  "preferGlobal": "true", 
  "main": "mimodulo.js"
}

Una vez tenemos creado el fichero que describe nuestro módulo será cuestión de crear el fichero ‘mimodulo.js’ que es el fichero principal del módulo(Fijaos que lo hemos puesto en el descriptor):

var atributo1="Hola mundo";
var contador=0;


exports.saluda=function() { 
	contador++;

	return atributo1+" "+contador; 
	}

Los métodos y atributos que exportamos deben ir definidos como ‘export.’, el resto de atributos y métodos serán privados(Es decir, no accesibles desde nuestro proyecto).
Ahora ya solo nos queda acceder al módulo desde nuestro proyecto, lo haremos tal como lo hacemos para acceder a otros módulos como ‘express'(Este código debería ir en el fichero ‘index.js’ de la raíz de nuestro proyecto):

var express = require('express');
var mimodulo = require('mimodulo');

var app = express();
 
app.get('/', function (req, res) {
    res.end( ""+mimodulo.saluda() );
    });
 
app.listen(3000, function () {
    console.log('Sistema armado en el puerto 3000!');
    });

Si todo ha salido bien, ejecutando ‘node index.js’ en la raíz de nuestro proyecto debería aparecer algo como esto(Un ‘hola mundo’ con un contador):

NodeJS module

NodeJS module

Ya veis! NodeJS tiene una estructura de módulos muy buena para compartir el código entre proyectos, incluso, con NPM podremos compartirlos con el mundo. Un buen invento!

Leave a Reply

© Albert Coronado Calzada