Tutorial de NPM de Node.js: creación, publicación, extensión y amp; Administrar

Un módulo en Node.js es una encapsulación lógica de código en una sola unidad. Siempre es una buena práctica de programación segregar siempre el código de tal manera que lo haga más manejable y mantenible para propósitos futuros. Ahí es donde entran en acción los módulos en Node.js.

Dado que cada módulo es una entidad independiente con su propia funcionalidad encapsulada, se puede administrar como una unidad de trabajo separada.

En este tutorial, aprenderá:

  • ¿Qué son los módulos en Node.js?
  • Usando módulos en Node.js
  • Creando módulos NPM
  • Ampliación de módulos
  • Publicar módulos de NPM
  • Administrar paquetes de terceros con npm
  • ¿Qué es el archivo package.json?

¿Qué son los módulos en Node.js?

Como se indicó anteriormente, los módulos en Node js son una forma de encapsular código en una unidad lógica separada. Hay muchos módulos listos para usar disponibles en el mercado que se pueden usar dentro de Node js.

A continuación se muestran algunos de los módulos populares que se utilizan en una aplicación Node js

  1. Marco expreso : Express es un marco de aplicación web Node js mínimo y flexible que proporciona un conjunto sólido de características para la web y las aplicaciones móviles.
  2. Socket.io : Socket.IO permite la comunicación bidireccional basada en eventos en tiempo real. Este módulo es bueno para la creación de aplicaciones basadas en chat.
  3. Jade : Jade es un motor de plantillas de alto rendimiento e implementado con JavaScript para nodos y navegadores.
  4. MongoDB : el controlador Node.js de MongoDB es el controlador node.js oficialmente admitido para MongoDB.
  5. Restify : restify es un marco ligero, similar a Express para la creación de API REST
  6. Bluebird : Bluebird es una biblioteca de promesas con todas las funciones que se centra en las funciones innovadoras y el rendimiento.

Usando módulos en Node.js

Para usar módulos en una aplicación Node.js, primero deben instalarse usando el administrador de paquetes de Node.

La siguiente línea de comando muestra cómo se puede instalar un módulo "express".

npm install express

  • El comando anterior descargará los archivos necesarios que contienen los "módulos express" y también se encargará de la instalación.
  • Una vez que se ha instalado el módulo, para usar un módulo en una aplicación Node.js, debe usar la palabra clave 'require'. Esta palabra clave es una forma que utiliza Node.js para incorporar la funcionalidad de un módulo en una aplicación.

Veamos un ejemplo de cómo podemos usar la palabra clave "require". El siguiente ejemplo de código "Guru99" muestra cómo utilizar la función require

var express=require('express');var app=express();app.set('view engine','jade');app.get('/',function(req,res){});var server=app.listen(3000,function(){});
  1. En la primera declaración en sí, estamos usando la palabra clave "require" para incluir el módulo express. El módulo "express" es una biblioteca JavaScript optimizada para el desarrollo de Node.js. Este es uno de los módulos de Node.js más utilizados.
  2. Después de que se incluye el módulo, para utilizar la funcionalidad dentro del módulo, es necesario crear un objeto. Aquí se crea un objeto del módulo express.
  3. Una vez que se incluye el módulo usando el comando "require" y se crea un "objeto", se pueden invocar los métodos requeridos del módulo express. Aquí estamos usando el comando set para configurar el motor de vista, que se usa para configurar el motor de plantillas utilizado en Node.js.

    Nota: - (Solo para la comprensión del lector; un motor de plantillas es un enfoque para inyectar valores en una aplicación mediante la recopilación de datos de archivos de datos. Este concepto es bastante famoso en Angular JS, donde las llaves {{clave}} se utilizan para sustituye los valores en la página web. La palabra 'clave' entre llaves denota básicamente la variable que será sustituida por un valor cuando se muestre la página).

  4. Aquí estamos usando el método listen to para hacer que la aplicación escuche en un número de puerto en particular.

Creando módulos NPM

Node.js tiene la capacidad de crear módulos personalizados y le permite incluir esos módulos personalizados en su aplicación Node.js.

Veamos un ejemplo simple de cómo podemos crear nuestro propio módulo e incluir ese módulo en nuestro archivo de aplicación principal. Nuestro módulo simplemente hará una simple tarea de sumar dos números.

Sigamos los pasos a continuación para ver cómo podemos crear módulos e incluirlos en nuestra aplicación.

Paso 1) Cree un archivo llamado "Addition.js" e incluya el siguiente código. Este archivo contendrá la lógica de su módulo.

A continuación se muestra el código que entraría en este archivo;

var exports=module.exports={};exports.AddNumber=function(a,b){return a+b;};
  1. La palabra clave "exportaciones" se utiliza para garantizar que otros archivos puedan acceder a la funcionalidad definida en este archivo.
  2. Luego estamos definiendo una función llamada 'AddNumber'. Esta función está definida para tomar 2 parámetros, ay b. La función se agrega al módulo "exporta" para hacer que la función sea una función pública a la que pueden acceder otros módulos de la aplicación.
  3. Finalmente estamos haciendo que nuestra función devuelva el valor agregado de los parámetros.

Ahora que hemos creado nuestro módulo personalizado que tiene la funcionalidad de sumar 2 números. Ahora es el momento de crear una aplicación, que llamará a este módulo.

En el siguiente paso, veremos cómo crear la aplicación que llamará a nuestro módulo personalizado.

Paso 2) Cree un archivo llamado "app.js", que es su archivo de aplicación principal y agregue el siguiente código

var Addition=require('./Addition.js');console.log(Addition.AddNumber(1,2));
  1. Estamos usando la palabra clave "require" para incluir la funcionalidad en el archivo Addition.js.
  2. Dado que ahora se puede acceder a las funciones del archivo Addition.js, ahora podemos realizar una llamada a la función AddNumber. En la función, estamos pasando 2 números como parámetros. Luego mostramos el valor en la consola.

Salida :

  • Cuando ejecute el archivo app.js, obtendrá una salida de valor 3 en el registro de la consola.
  • El resultado es porque la función AddNumber en el archivo Addition.js se llamó correctamente y el valor devuelto de 3 se mostró en la consola.

Nota: - Todavía no estamos usando el "Administrador de paquetes de nodo" para instalar nuestro módulo Addition.js. Esto se debe a que el módulo ya es parte de nuestro proyecto en la máquina local. El administrador de paquetes de Node aparece en la imagen cuando publica un módulo en Internet, que veremos en el tema siguiente.

Ampliación de módulos

Al crear módulos, también es posible extender o heredar un módulo de otro.

En la programación moderna, es bastante común construir una biblioteca de módulos comunes y luego extender la funcionalidad de estos módulos comunes si es necesario.

Veamos un ejemplo de cómo podemos extender módulos en Node.js.

Paso 1) Cree el módulo base.

En nuestro ejemplo, cree un archivo llamado "Tutorial.js" y coloque el siguiente código.

En este código, solo estamos creando una función que devuelve una cadena a la consola. La cadena devuelta es "Tutorial de Guru99".

var exports=module.exports={};exports.tutorial=function(){console.log("Guru99 Tutorial")}
  1. El módulo de exportaciones se usa para que cualquier función definida en este archivo pueda estar disponible en otros módulos en Node.js
  2. Estamos creando una función llamada tutorial que se puede usar en otros módulos de Node.js.
  3. Estamos mostrando una cadena "Tutorial de Guru99" en la consola cuando se llama a esta función.

Ahora que hemos creado nuestro módulo base llamado Tutorial.js. Ahora es el momento de crear otro módulo que ampliará este módulo base.

Exploraremos cómo hacer esto en el siguiente paso.

Paso 2) A continuación, crearemos nuestro módulo extendido. Cree un nuevo archivo llamado "NodeTutorial.js" y coloque el siguiente código en el archivo.

var Tutor=require('./Tutorial.js');exports.NodeTutorial=function(){console.log("Node Tutorial")function pTutor(){var PTutor=TutorPTutor.tutorial();}}Orvar Tutor=require('./Tutorial.js');exports.NodeTutorial=function(){console.log("Node Tutorial")this.pTutor = function (){var PTutor=TutorPTutor.tutorial();}}

Tenga en cuenta los siguientes puntos clave sobre el código anterior

  1. Estamos usando la función "require" en el archivo del nuevo módulo. Dado que vamos a ampliar el archivo de módulo existente "Tutorial.js", primero debemos incluirlo antes de ampliarlo.
  2. Luego creamos una función llamada "Nodetutorial". Esta función hará 2 cosas,
  • Enviará una cadena "Tutorial de nodo" a la consola.
  • Enviará la cadena "Guru99 Tutorial" desde el módulo base "Tutorial.js" a nuestro módulo extendido "NodeTutorial.js".
  1. Aquí estamos realizando el primer paso para enviar una cadena a "Tutorial de nodo" a la consola.
  2. El siguiente paso es llamar a la función desde nuestro módulo Tutorial, que generará la cadena "Guru99 Tutorial" en console.log.

Paso 3) Cree su archivo app.js principal, que es su archivo de aplicación principal e incluya el siguiente código.

var localTutor=require('./NodeTutorial.js');localTutor.NodeTutorial();localTutor.NodeTutorial.pTutor();Or use this codevar tut = new localTutor.NodeTutorial(); // Create and save objecttut.pTutor(); // Call function on object

El código anterior hace las siguientes cosas;

  1. Nuestro archivo de aplicación principal ahora se llama módulo "NodeTutorial".
  2. Estamos llamando a la función "NodeTutorial". Al llamar a esta función, el texto "Tutorial de nodo" se mostrará en el registro de la consola.
  3. Desde que ampliamos nuestro módulo Tutorial.js y expusimos una función llamada pTutor. También llama al módulo tutorial en el módulo Tutorial.js, y el texto "Guru99 Tutorial" también se mostrará en la consola.

Producción:

Dado que hemos ejecutado el código app.js anterior usando Node, obtendremos el siguiente resultado en el archivo console.log

  • Tutorial de nodo
  • Tutorial de Guru99

Publicación de módulos NPM (Node Package Manager)

Uno puede publicar su propio módulo en su propio repositorio de Github.

Al publicar su módulo en una ubicación central, no tendrá que instalarse usted mismo en todas las máquinas que lo requieran.

En su lugar, puede usar el comando de instalación de npm e instalar su módulo npm publicado.

Se deben seguir los siguientes pasos para publicar su módulo npm

Paso 1) Cree su repositorio en GitHub (una herramienta de gestión de repositorios de código en línea). Se puede utilizar para alojar sus repositorios de código.

Paso 2 ) Debe informar a su instalación local de npm sobre quién es usted. Lo que significa que debemos decirle a npm quién es el autor de este módulo, cuál es la identificación del correo electrónico y cualquier URL de la empresa, que está disponible y que debe asociarse con esta identificación. Todos estos detalles se agregarán a su módulo npm cuando se publique.

Los siguientes comandos establecen el nombre, correo electrónico y URL del autor del módulo npm.

npm establece init.author.name "Guru99".

npm set init.author.email " Esta dirección de correo electrónico está protegida contra spambots. Necesita tener JavaScript habilitado para verla".

npm establece init.author.url http://Guru99.com

Paso 3) El siguiente paso es iniciar sesión en npm con las credenciales proporcionadas en el último paso. Para iniciar sesión, debe usar el siguiente comando

npm login 

Paso 4) Inicialice su paquete: el siguiente paso es inicializar el paquete para crear el archivo package.json. Esto se puede hacer emitiendo el siguiente comando

npm init

Cuando emita el comando anterior, se le solicitarán algunas preguntas. El más importante es el número de versión de su módulo.

Paso 5) Publicar en GitHub: el siguiente paso es publicar tus archivos de origen en GitHub. Esto se puede hacer ejecutando los siguientes comandos.

git add.git commit -m "Initial release"git tag v0.0.1git push origin master --tags

Paso 6) Publique su módulo: el último bit es publicar su módulo en el registro de npm. Esto se hace mediante el siguiente comando.

npm publish

Administrar paquetes de terceros con npm

Como hemos visto, el "Administrador de paquetes de nodo" tiene la capacidad de administrar módulos, que son requeridos por las aplicaciones de Node.js.

Veamos algunas de las funciones disponibles en el administrador de paquetes de nodos para administrar módulos.

  1. Instalación de paquetes en modo global: los módulos se pueden instalar a nivel global, lo que básicamente significa que estos módulos estarán disponibles para todos los proyectos de Node.js en una máquina local. El siguiente ejemplo muestra cómo instalar el "módulo express" con la opción global.

    npm install express -global

    La opción global en la declaración anterior es la que permite que los módulos se instalen a nivel global.

  2. Listado de todos los paquetes globales instalados en una máquina local. Esto se puede hacer ejecutando el siguiente comando en el símbolo del sistema

    npm list --global

    A continuación se muestra la salida que se mostrará, si ha instalado previamente el "módulo express" en su sistema.

    Aquí puede ver los diferentes módulos instalados en la máquina local.

  1. Instalación de una versión específica de un paquete: a veces puede ser necesario instalar solo la versión específica de un paquete. Una vez que sepa el nombre del paquete y la versión relevante que necesita instalar, puede usar el comando npm install para instalar esa versión específica.

    El siguiente ejemplo muestra cómo instalar el módulo llamado subrayado con una versión específica de 1.7.0

    npm install [email protected]

  2. Actualización de la versión de un paquete: a veces es posible que tenga una versión anterior de un paquete en un sistema y desee actualizar a la última disponible en el mercado. Para hacer esto, se puede usar el comando npm update. El siguiente ejemplo muestra cómo actualizar el paquete de subrayado a la última versión

    subrayado de actualización npm

  3. Búsqueda de un paquete en particular: para buscar si una versión en particular está disponible en el sistema local o no, puede usar el comando de búsqueda de npm. El siguiente ejemplo verificará si el módulo express está instalado en la máquina local o no.

    npm búsqueda express

  4. Desinstalar un paquete: igual en el que puede instalar un paquete, también puede desinstalar un paquete. La desinstalación de un paquete se realiza con el comando de desinstalación de npm. El siguiente ejemplo muestra cómo desinstalar el módulo express

    npm desinstalar express

¿Qué es el archivo package.json?

El archivo "package.json" se utiliza para contener los metadatos sobre un proyecto en particular . Esta información proporciona al administrador de paquetes de Node la información necesaria para comprender cómo se debe manejar el proyecto junto con sus dependencias.

Los archivos package.json contienen información como la descripción del proyecto, la versión del proyecto en una distribución particular, información de licencia y datos de configuración.

El archivo package.json normalmente se encuentra en el directorio raíz de un proyecto Node.js.

Tomemos un ejemplo de cómo se ve la estructura de un módulo cuando se instala a través de npm.

La siguiente instantánea muestra el contenido del archivo del módulo express cuando se incluye en su proyecto Node.js. Desde la instantánea, puede ver el archivo package.json en la carpeta express.

Si abre el archivo package.json, verá mucha información en el archivo.

A continuación se muestra una instantánea de una parte del archivo. El express@~4.13.1 menciona el número de versión del módulo expreso que se utiliza.

Resumen

  • Un módulo en Node.js es una encapsulación lógica de código en una sola unidad. La separación en módulos hace que el código sea más manejable y fácil de mantener para propósitos futuros
  • Hay muchos módulos disponibles en el mercado que se pueden usar dentro de Node.js como express, subrayado, MongoDB, etc.
  • El administrador de paquetes de nodos (npm) se usa para descargar e instalar módulos que luego se pueden usar en una aplicación Node.js.
  • Se pueden crear módulos NPM personalizados, ampliar estos módulos y también publicar estos módulos.
  • El administrador de paquetes de Node tiene un conjunto completo de comandos para administrar los módulos npm en el sistema local, como la instalación, desinstalación, búsqueda, etc.
  • El archivo package.json se usa para contener toda la información de metadatos de un módulo npm.

Articulos interesantes...