Tutorial de Node.js NPM: Cómo crear, ampliar y publicar módulos
Módulos de Node.js
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 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 de Node.js.
Dado que cada módulo es una entidad independiente con su propia funcionalidad encapsulada, se puede gestionar como una unidad de trabajo independiente.
¿Qué es un módulo 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 en Node js.
A continuación se muestran algunos de los módulos populares que se utilizan en una aplicación Node js.
- 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 móvil aplicaciones.
- Zócalo.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.
- Jade – Jade es un motor de plantillas de alto rendimiento e implementado con JavaGuión para nodos y navegadores.
- MongoDB - El MongoDB El controlador Node.js es el controlador node.js oficialmente compatible para MongoDB.
- Restificar – restify es un marco liviano, similar a express para crear API REST
- Azulejo – Bluebird es una biblioteca de promesas con todas las funciones y un enfoque en características y rendimiento innovadores.
Usando módulos en Node.js
Para utilizar módulos en un Node.js aplicación, primero deben instalarse utilizando el administrador de paquetes de Node.
La siguiente línea de comando muestra cómo se puede instalar un módulo "express".
npm instalar express
- El comando anterior descargará los archivos necesarios que contienen los "módulos expresos" y también se encargará de la instalación.
- Una vez que se ha instalado el módulo, para utilizar un módulo en una aplicación Node.js, debe utilizar la palabra clave "requerir". 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 utilizar la palabra clave "requerir". 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() { });
- En la primera declaración, utilizamos la palabra clave "requerir" para incluir el módulo expreso. El módulo “express” es un optimizado JavaGuión Biblioteca para el desarrollo de Node.js. Este es uno de los módulos de Node.js más utilizados.
- Una vez incluido 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.
- Una vez que se incluye el módulo usando el comando "requerir" y se crea un "objeto", se pueden invocar los métodos requeridos del módulo expreso. Aquí estamos usando el comando set para configurar el motor de visualización, que se usa para configurar el motor de plantillas usado en Node.js.
- Aquí estamos usando el método de escucha para hacer que la aplicación escuche en un número de puerto particular.
Nota: -(Solo para la comprensión del lector; un motor de plantillas es un enfoque para inyectar valores en una aplicación al tomar datos de archivos de datos. Este concepto es bastante famoso en Angular JS, donde las llaves {{key}} se utilizan para sustituir valores en la página web. La palabra "clave" entre llaves básicamente denota la variable que será sustituida por un valor cuando se muestre la página).
Cómo crear 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 sencillo de cómo podemos crear nuestro propio módulo e incluirlo en nuestro archivo de aplicación principal. Nuestro módulo simplemente realizará una tarea sencilla: sumar dos números.
Sigamos los pasos a continuación para ver cómo podemos crear módulos e incluirlos en nuestra aplicación.
A continuación se muestra el proceso paso a paso sobre cómo crear módulos NPM
Paso 1) Cree un archivo y pegue el siguiente código
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 se incluiría en este archivo;
var exports=module.exports={}; exports.AddNumber=function(a,b) { return a+b; };
- La palabra clave "exportaciones" se utiliza para garantizar que otros archivos puedan acceder a la funcionalidad definida en este archivo.
- Luego estamos definiendo una función llamada "AddNumber". Esta función está definida para tomar 2 parámetros, a y b. La función se agrega al módulo "exportaciones" para convertirla en una función pública a la que puedan acceder otros módulos de la aplicación.
- 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 función de sumar dos números, es 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) Crear un archivo de aplicación
Cree un archivo llamado "app.js", que es el archivo principal de su aplicación y agregue el siguiente código
var Addition=require('./Addition.js'); console.log(Addition.AddNumber(1,2));
- Estamos utilizando la palabra clave "requerir" para incluir la funcionalidad en el archivo Addition.js.
- 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, pasamos 2 números como parámetros. Luego estamos mostrando el valor en la consola.
Salida:
- Cuando ejecute el archivo app.js, obtendrá un resultado de valor 3 en el registro de la consola.
- El resultado se debe a que 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 utilizamos el “Administrador de paquetes de nodos” para instalar nuestro módulo Addition.js. Esto se debe a que el módulo ya forma 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, lo cual veremos en el tema siguiente.
Ampliación de módulos en Node.js
Al crear módulos, también es posible ampliar o heredar un módulo de otro.
En la programación actual, es bastante común crear una biblioteca de módulos comunes y luego ampliar la funcionalidad de estos módulos comunes si es necesario.
Veamos un ejemplo de cómo podemos ampliar 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, simplemente estamos creando una función que devuelve una cadena a la consola. La cadena devuelta es "Tutorial Guru99".
var exports=module.exports={}; exports.tutorial=function() { console.log("Guru99 Tutorial") }
- El módulo de exportaciones se utiliza para que cualquier función definida en este archivo pueda estar disponible en otros módulos en Node.js.
- Estamos creando una función llamada tutorial que se puede utilizar en otros módulos de Node.js.
- Mostramos 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=Tutor PTutor.tutorial(); } } Or var Tutor=require('./Tutorial.js'); exports.NodeTutorial=function() { console.log("Node Tutorial") this.pTutor = function () { var PTutor=Tutor PTutor.tutorial(); } }
Tenga en cuenta los siguientes puntos clave sobre el código anterior
- Estamos utilizando la función "requerir" en el nuevo archivo del módulo. Dado que vamos a ampliar el archivo del módulo existente “Tutorial.js”, primero debemos incluirlo antes de ampliarlo.
- 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 "Tutorial Guru99" desde el módulo base "Tutorial.js" a nuestro módulo extendido "NodeTutorial.js".
- Aquí estamos realizando el primer paso para enviar una cadena a “Node Tutorial” a la consola.
- El siguiente paso es llamar a la función desde nuestro módulo Tutorial, que generará la cadena "Tutorial Guru99" 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 code var tut = new localTutor.NodeTutorial(); // Create and save object tut.pTutor(); // Call function on object
El código anterior hace lo siguiente:
- Nuestro archivo de aplicación principal ahora llama al módulo "NodeTutorial".
- Llamamos a la función “NodeTutorial”. Al llamar a esta función, se mostrará el texto “Node Tutorial” en el registro de la consola.
- Ya 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.
Salida:
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
Paquete de publicación NPM (Administrador de paquetes de nodos)
Uno puede publicar su propio módulo en su propio Github repositorio.
Al publicar su módulo en una ubicación central, no tendrá que instalarse en cada máquina que lo requiera.
En su lugar, puede utilizar 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 administración de repositorios de código en línea). Puede usarse para alojar sus repositorios de código.
Paso 2) Debes informar a tu instalación local de npm quién eres. Esto significa que debemos informar a npm quién es el autor de este módulo, cuál es el ID de correo electrónico y cualquier URL de empresa disponible que deba estar asociada con este ID. Todos estos detalles se agregarán a tu módulo npm cuando se publique.
Los siguientes comandos establecen el nombre, el correo electrónico y la URL del autor del módulo npm.
npm establece nombre-autor-init “Guru99.”
npm establece el correo electrónico del autor inicial “guru99@gmail.com”
npm establece la URL del autor inicial “http://Guru99.com”
Paso 3) El siguiente paso es iniciar sesión en npm utilizando las credenciales proporcionadas en el último paso. Para iniciar sesión, debe utilizar 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 ejecute 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 sus archivos fuente en GitHub. Esto se puede hacer ejecutando los siguientes comandos.
git add. git commit -m "Initial release" git tag v0.0.1 git push origin master --tags
Paso 6) Publique su módulo: lo último es publicar su módulo en el registro npm. Esto se hace mediante el siguiente comando.
npm publish
Administrar paquetes de terceros con npm
Como hemos visto, el “Administrador de paquetes de Node” tiene la capacidad de administrar los módulos que requieren las aplicaciones Node.js.
Veamos algunas de las funciones disponibles en el administrador de paquetes de nodos para administrar módulos.
- 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ían disponibles para todos los proyectos de Node.js en una máquina local. El siguiente ejemplo muestra cómo instalar el “módulo rápido” con la opción global.npm instala express –global La opción global en la declaración anterior es lo que permite que los módulos se instalen a nivel global.
- 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 sistemalista de npm –globalA continuación se muestra el resultado que se mostrará si previamente instaló el “módulo expreso” en su sistema. Aquí puede ver los diferentes módulos instalados en la máquina local.
- 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 debe instalarse, 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.0npm install. guión bajo@1.7.0
- Actualización de una versión de paquete: a veces es posible que tenga una versión anterior de un paquete en un sistema y desee actualizar a la última versión disponible en el mercado. Para hacer esto, se puede usar el comando npm update. El siguiente ejemplo muestra cómo actualizar el paquete de guión bajo a la última versión.guión bajo de actualización de npm
- Búsqueda de un paquete en particular: para buscar si una versión en particular está disponible en el sistema local o no, puede utilizar el comando de búsqueda de npm. El siguiente ejemplo comprobará si el módulo express está instalado en la máquina local o no.búsqueda npm expresa
- Desinstalar un paquete: de la misma manera 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 expreso
¿Qué es el archivo package.json?
El archivo “package.json” se utiliza para contener el 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 mediante npm.
La siguiente instantánea muestra el contenido del archivo del módulo express cuando se incluye en su proyecto Node.js. En 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 expreso@~4.13.1 menciona el número de versión del módulo express que se está utilizando.
Resum
- 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 mantenible para propósitos futuros.
- Hay muchos módulos disponibles en el mercado que se pueden utilizar dentro de Node.js, como express, underscore, MongoDB, etc.
- El administrador de paquetes de nodo (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 publicarlos.
- El administrador de paquetes 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 utiliza para contener toda la información de metadatos de un módulo npm.