No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Herramientas para ser más felices: Nodemon y PM2

6/31
Recursos

Aportes 170

Preguntas 38

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para ejecutar nodemon en windows

npx nodemon archivo.js

RESUMEN:


Desarrollo
Nodemon. Demons en linux, puedes tener procesos que ves ejecutandose
nodemon + archivo al que quiero acceder detecta cambios, y ejecuta automaticamente el código.

sudo npm install -g nodemon

Producción

sudo npm install -g pm2

PM2 Es un demonio administrador de procesos que me puede ayudar a administrar y mantener mi aplicación 24/7.

  • Voy a poner monitorizar el código para saber si algo se rompe.
  • Me permite ver dashboards de mi código, puedo ver que está corriendo.
  • Puedo ver el rendimiento de mi cpu
  • Con: pm2 stop + id —> me detiene el proceso que está en ejecución con ese ID.

PM2

Compañeras y compañeros, os presento Live server para desarrolladores backend :p

Si estás viendo éste curso en el 2022, Node en su versión 18.11.0 ya no ocupa nodemon, con solo teclear:

node --watch index.js

te corre la app y se mantiene corriendo y reinicia el proceso cuando detecta un cambio. Sin dependencias.

  • Nodemon: para usar en desarrollo
  • PM2: Para usar en producción.

**PM2 **es un administrador de procesos demonio que lo ayudará a administrar y mantener su aplicación en línea las 24 horas, los 7 días de la semana

Enfocado a producción

npm install pm2 -g
pm2 start

pm2 status
pm2 log

Un daemon es un proceso que se ejecuta en segundo plano. 😁

  • Nodemon (Desarrollo): Es un gestor que nos ayuda a detectar los cambios, compilarlo y ejecutarlos.

npm install -g nodemon

  • PM2 (Producción): Es parecida a nodemon simplemente mas avanzada y mas compleja. No se debe utilizar en desarrollo por que dará más problemas que soluciones. Nos ayudara a ver los datos de nuestra aplicación en producción, como el uso del CPU, memoria, cuantas veces se ha reiniciado.

npm install -g pm2

Excelente, me encanto con tu forma de explicar tan fácil de digerir estoy empezando a recurar de nuevo mi entusiasmo por la programación, le esta pasando lo mismo a alguien mas?

Ya conocía Nodemon, viene muy bien para ahorrarnos tiempo de desarrollo, para proyectos de Node también se puede generar una script en el package.json y ahorrarse la instalación global de, haciendo:

"start": "npx nodemon app.js"

Y luego haciendo npm start desde la terminal ya se ejecutará Nodemon para nuestro proyecto, tardará un poquito más la primera vez porque no está instalado, pero luego correrá perfectamente. Con la instalación global como muestra en el video sin el npx. Va en gustos.


¡Me encantó PM2! No conocía esa herramienta. Hay que seguir practicando y aprendiendo para sacarle mucho jugo. Parece muy útil en proyectos que ya esten en producción.

Excelente clase.

zsh: command not found: nodemon

Si alguien esta usando hyper bash pues tienes que hacer
sudo npm i -g nodemon o sudo yarn global add nodemon

nodemon
nodemon es una herramienta que ayuda a desarrollar aplicaciones basadas en node.js al reiniciar automáticamente la aplicación de nodo cuando se detectan cambios en el directorio.

sudo npm install -g nodemon
nodemon nombre_archivo

Actualización: Ha salido un nuevo feature de Node que se encarga de hacer la misma tarea que nodemon. Basta con ejecutar el programa con

node --watch index.js

Si desean solamente probar unas lineas de código, un algoritmo que están construyendo o crear y depurar alguna función, pueden instalar la extensión Code Runer

Es muy util para hacer pequeñas pruebas en muchos lenguajes de programacion

Para utilizarla solo necesitan seleccionar el codigo que desean correr y presionar:

ctrl + alt + n

Yo la utilizo cuando necesito crear un pequeño bloque de código independiente del resto o cuando quiero probar una solucion que usa de los métodos de un Array, un String o similares para ser mas rapido

vine para aprender front y creo que me esta gustando el backend 😀

Nodemon es una herramienta que nos ayuda a detectar los cambios y los ejecutarlos automáticamente.

PM2 nos ayuda a ver los datos de nuestra aplicacion en producción, como el uso de CPU, Memoria, cuantas veces se ha reiniciado, etc. No es recomendable ocupar PM2 en desarrollo ya que con la cantidad de datos y controles nos dará mas problemas que soluciones.

Les recomiendo el plugin de visualstudio que yo uso, se llama quokka y es para visualisar cambios en javascript sin tener que ver la consola

Resumiendo: Nodemon para desarollo y PM2 para produccion.

para los que requieran permisos de administrador

sudo npm install -g nodemon```

Nodemon se puede usar de forma global o como solo como dependencia de desarrollo:

npm install --save-dev nodemon

o

yarn add -D nodemon

Y ya de aquí solo seria cuestión de configurar tu package.json agregando tu script de start

"scripts": {
    "start": "nodemon ./server.js"
  }

Recomendacion

  • Nodemon: Para desarrollo

  • PM2: para producción

Nota: Hoy en día ya está disponible la bandera --watch de Nodejs, por lo tanto NO es necesario el uso del paquete nodemon.

Para usar node --watch path/to_file requerimos Nodejs >= v.18.11.

Apartir de ahora, podemos poner un comando en el package.json cómo:

"scripts": {
    "dev": "node --watch ./app.js"
  }
Que alguien le de un premio a este hombre (profesor). Esta información vale millones. Gracias buen hombre.

Herramientas para ser más felices: Nodemon y PM2

Nodemon y PM2 son dos herramientas muy útiles en el mundo de Node.js para facilitar el desarrollo y la gestión de aplicaciones. Aquí tienes una breve descripción de cada una:

  1. Nodemon:
    • ¿Qué es Nodemon? Nodemon es una utilidad que supervisa los archivos de tu aplicación Node.js y automáticamente reinicia el servidor cada vez que detecta un cambio en el código fuente. Esto es especialmente útil durante el desarrollo, ya que elimina la necesidad de detener y reiniciar manualmente el servidor cada vez que se realizan modificaciones en el código.
    • Uso principal: Nodemon se utiliza comúnmente en entornos de desarrollo para agilizar el proceso de desarrollo y pruebas. Permite a los desarrolladores ver los efectos de sus cambios de código de manera inmediata sin tener que reiniciar manualmente el servidor Node.js.
  2. PM2 (Process Manager 2):
    • ¿Qué es PM2? PM2 es un gestor de procesos avanzado para aplicaciones Node.js (y otras aplicaciones) que proporciona una variedad de características para administrar y desplegar aplicaciones en producción. PM2 permite gestionar múltiples aplicaciones, monitorear su rendimiento y proporcionar una alta disponibilidad y balanceo de carga.
    • Uso principal: PM2 es ampliamente utilizado en entornos de producción para asegurar un alto nivel de disponibilidad y rendimiento de las aplicaciones Node.js. Además de la gestión de procesos, PM2 ofrece funciones de monitoreo, registro de eventos, auto-recuperación en caso de fallos, escalado y administración de múltiples aplicaciones en un servidor.

En resumen, Nodemon es una herramienta de desarrollo que simplifica la actualización y prueba de código en aplicaciones Node.js, mientras que PM2 es una herramienta de administración de procesos utilizada en entornos de producción para garantizar la disponibilidad y el rendimiento de las aplicaciones Node.js. Ambas herramientas son ampliamente utilizadas en la comunidad de desarrollo de Node.js.

Si estás viendo éste curso en el 2022, Node en su versión 18.11.0 ya no ocupa nodemon, con solo teclear:

node--watch index.js

te corre la app y se mantiene corriendo y reinicia el proceso cuando detecta un cambio. Sin dependencias.

omg al final llegué a la conclusion de que esto es el equivalente al live server de las paginas web XD

Actualización: A partir de la versión 18.11.0 no es necesario el nodemon, ya que se pueda hacer directamente con node ejecutando el parámetro --watch.

node --watch ejemplo.js

Octubre 2022: node añade el parámetro --watch y así ya no hace falta nodemon

Para ejecutarlo como administrador en la consola de linux hay que escribir:

sudo npm install -g nodemon

Para solucionar:
zsh: command not found: nodemon
Es posible también crear um symbolic link:
ln -s /Users/YOUR_USER/.npm-global/bin/nodemon /usr/local/bin

En muchas ocasiones nosotros deberemos estar buscando errores y compilándolos de nuevo a node para comprobar si ya han sido solucionados, pero este proceso se puede convertir en algo tedioso.
Para optimizar este proceso de solución de errores y/o agregar cambios se suele utilizar la dependencia nodemon, que se encarga específicamente de estar vigilando algún cambio dentro de nuestro código de node para recargarse automáticamente, esta herramienta es perfecta para desarrollo.
También existe otra dependencia llama pm2, se encarga de vigilar el estado de nuestro código pero con muchas más ventajas e información que nodemon, esta herramienta se recomienda utilizar solo en modo de producción debido a la cantidad de detalles que nos ofrecerá.

A partir de la versión 18 de Node.js, ahora puedes utilizar el comando `--watch`, y el programa seguirá ejecutándose. Cada vez que cambie algo en el archivo, como el mensaje, el programa se reiniciará automáticamente. ejemplo: `NOMBRE=andres MI_WEB=andres.com node --watch entorno.js` ![](https://static.platzi.com/media/user_upload/image-e3c75a44-71cf-49d0-be75-705c2a049e7d.jpg)

Generé estos scripts dentro de package.json, si es que a alguien les sirva.

"scripts": {
    "nodemon-start": "nodemon conceptos/monohilo.js",
    "pm2-start": "pm2 start conceptos/monohilo.js",
    "pm2-stop": "pm2 stop conceptos/monohilo.js",
    "pm2-log": "pm2 log",
    "pm2-status": "pm2 status"
  },

A mi me servirá como recordatorio 😎

Para que ande pm2 en Windows. En powershell como administrador debe poner:

Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned
Get-ExecutionPolicy

Si tenes las politicas de ejecucion como Restricted
Debes setearlo a RemoteSigned

pm2 toca saberlo instalar por q hay veces que genera mucho consumo en la cpu …

me paso a mi y toco desinstalar todoooo y volver a instalar y ya si no funciona pm2 hay otro que se llama forever

Para que trabaje en MAC tal cual indica el profesor, he seguido estos pasos.

sudo su
npm install -g nodemon --save-dev

De está manera me funciono en MacOS Bigsur

Herramientas para ser más felices: Nodemon y PM2

Nodemon

Recarga el código a ejecutar de forma automática al guardar cambios y funciona para entornos de desarrollo.

Comandos

# 1. Instalación
npm i -g nodemon

# 2. start
nodemon <ruta-de-archivo>

PM2

Es un paquete similar a Nodemon, pero con mayor uso y funcionalidad en entornos de producción.

Comandos

# 1. Instalación
npm i -g PM2

# 2. start 
pm2 start <ruta-de-archivo>

# 3. stop
pm2 stop <ruta-de-archivo> || id-de-proceso

# 4. estado
pm2 status

# 5. monitoreo
pm2 monitor

# 6. logs
pm2 log 

PM2 => recomendable usar solo para producción. En desarrollo usar solo nodemon

NODEMON= Va a crearnos una herramienta que cada vez que detecte en el codigo que estamos ejecutando o en cualquier de las dependenciasrelacionadas con ese codigo en nuestros archivos. Va a volver a ejecutar todo nuestro codigo!



PM2= Es parecido a Nodemon la diferencia es que PM2 es mucho mas avanzada y mucho más compleja 😦


NO LO UTILICEMOS EN DESARROLLO YA QUE NOS VA AAR MAS PROBLEMAS QUE SOLUCIONES.


Con PM2 vamos a poder tener todo el codigo automatico!


PM2 stop + id => me detiene el proceso que está en ejecución con ese ID


pm2 Logs. V

My notes
Herramientas para ser más felices: Nodemon y PM2

Nodemon : Gestor de node, permite tener un proceso corriendo y observando cambios, es una herramienta que vuelve a ejecutar nuestro codigo al detectar un cambios
npm install -g nodemon
Para ejecutar en windows
npx nodemon entorno.js

PM2: Esto es mas pro que nodemon, en desarrollo no es muy util, en produccion es lo maximo
npm install -g pm2

nodemon sirve para no estar ejecutando en consola los comando de node para cada cambio que hacemos, ya que nodemon te ahorrar esos pasos y solo necesitas guardar los cambios y se ejecutan automaticamente 😃 que felices nos hace nodemon

Nodemon vs PM2

Instalar como dependencia de desarrollo:

npm install nodemon --save-dev

Sobre Nodemon 👀

Desde la versión 18.11.0 de Node, podemos usar el parámetro --watch que hará el truco para que reiniciar nuestro script sin necesidad de usar nodemon pero usando Node nativo!

Ejemplo

node index.js --watch
// Cada vez que guardemos index.js se vuelve a correr nuestro script
Los cursos de platzi no serían lo mismo sin los aportes de la comunidad, al final son mi mejor libreta de apuntes

🙄 PM2 es un administrador de procesos para aplicaciones Node.js. Es una herramienta que permite administrar procesos de manera sencilla, garantizando la estabilidad y el rendimiento de la aplicación en producción.

PM2 proporciona muchas funciones útiles, como la gestión de múltiples instancias de la aplicación, la supervisión del estado de la aplicación, la configuración de variables de entorno y la implementación de la aplicación en producción.

Además, PM2 tiene características avanzadas como el equilibrio de carga y la capacidad de escalar horizontalmente, lo que significa que puede administrar automáticamente el aumento de la carga de trabajo al agregar o eliminar instancias de la aplicación según sea necesario.

En resumen, PM2 es una herramienta muy útil para cualquier desarrollador de Node.js que desee administrar sus aplicaciones de manera eficiente y escalable en producción.

CHICOOOS dato interesante por si usan Python 😛 nodemon tambiein funciona con Python JAJA

Solo escriban en consola:

nodemon nombre_script.py

y funciona lo mismooo, amoooo

son maravillosas estas herramientas.!

Nodemon y PM2
Dos herramientas fundamentales en el desarrollo y monitorización del funcionamiento de node js
Nodemon.
Sirve para tener procesos que ves ejecutándose. detecta cambios, y ejecuta automáticamente el código. sudo npm install -g nodemon Nodemon
Pm2
Es un demonio administrador de procesos que me puede ayudar a administrar y mantener mi aplicación 24/7. Voy a monitorizar el código para saber si algo se rompe. Me permite ver dashboards de mi código, puedo ver que está corriendo. Puedo ver el rendimiento de mi cpu Con: pm2 stop + id —> me detiene el proceso que está en ejecución con ese ID.
sudo npm install -g pm2 PM2

La verdad estaba pensado que iba a ser muy tedioso ir a la terminal y dictar de nuevo los cambios en las variables de entorno pero ahora con estas herramientas resuelven ese problema 😃

Por que vine a conocer nodemon tan tarde despues de 1 año de estudio, Gracias Carlos.

Yo tuve este problema:

nodemon : No se puede cargar el archivo …tu ruta … porque la ejecución de
scripts está deshabilitada en este sistema.

Lo que hice para solucionarlo fue lo siguiente:

  1. Abro el powershell en modo de administrador.
  2. Ingreso lo siguiente:

Set-ExecutionPolicy Unrestricted

Y listo. 😃

Ahora ya puedo usar el comando nodemon miArchivo.js

los que tienen windows, deberian poner a bash como terminal predeterminada

https://youtu.be/EVh36sDppcs

Hola todos, les dejo mi bibliioteca de apuntes y temas que estoy armando, arranque con Node el día de hoy!!!

https://alejandria.vercel.app/categories/nodejs/

Para los que estan en windows y le sale el error que no les pernite ejecutar comandos externos. Abren la consola de powershell como adminitrados y ejecutan el siguiente comando.

Set-ExecutionPolicy Unrestricted

Luego le dan a la opcion S y listo. Ya pueden ejercutar nodemon de la siguiente manera,

nodemon script.js 

Por otra parte PM2 me hubiera ayudado mucho hace un par de años :’(

¡Este profesor es excelente! 🤓

Instalando localmente nodemon:
npm i nodemon --save-dev

Agregar una entrada de script al package.json
"nodemon":“nodemon -exec”

Inicia y autodespliega aplicacion luego de cambios en el codigo fuente.
npm run nodemon “npm start”

*El ultimo comando para instalaciones globales:
nodemon --exec “npm start”

Primera vez que escucho sobre pm2 qué gran herramienta. Me gustaría que los profesores nos dieran más seguido herramientas para cuando terminamos el desarrollo.

  1. nodemon >>> Es una utilidad que monitorea los cambios en el codigo que se esta desarrollando y automaticamente reinicia el servidor
npm i -g nodemon
  1. pm2 >>> Es un gestor de procesos en producción para las aplicaciones Node. js. PM2 permite mantener siempre activas las aplicaciones y volver a cargarlas evitando los tiempos de inactividad, a la vez que facilita tareas comunes de administrador del sistema.
npm i -g pm2
// Inicia la aplicacion
pm2 start app.js
// Valancea 4 instancias de esta aplicacion
pm2 start api.js -i 4
// Monitorizar en Produccion
pm2 monitor
// Estado de todas las aplicaciones corriendo
pm2 status
// Vemos todos los logs de nuestra aplicacion
pm2 log
// Parar la aplicacion
pm2 stop app.js       o      pm2 stop [id]

Nodemon, excelente herramienta, se me hace amigable empezar a aprender las bases de node con este tipo de utilidades

Si la terminal de Windows o la de VS Code les presenta problemas, les recomiendo utilizar Cmder,

Cmder es un paquete de software creado por pura frustración por la ausencia de buenos emuladores de consola en Windows. Está basado en un software asombroso y aderezado con el esquema de color Monokai y un diseño personalizado, luciendo genial desde el principio.

https://cmder.net/

También en el archivo package.json pueden editar esta línea de la siguiente manera:

"scripts": {
    "start": "nodemon index.js"
},

Y en la consola sólo tendrían que colocar npm start
Del mismo modo, si quieren que nodemon ignore cambios que se realicen en ciertos archivos debemos crear un archivo llamado nodemon.json y colocar lo siguiente, por ejemplo:

{   
    "ignore": [
        "archivo_a_ignorar.js"
    ] 
}

Para los que no les funcione nodemon directamente porque el sistema no admite scrips, hay que hacer un pequeño cambio desde PowerShell con _Set-ExecutionPolicy RemoteSigned _. Acá les dejo un link con más info al respecto

NODEMON VS PM2
Nodemon nos permite cada vez que guardamos, ejecutar nuestro código automáticamente. Es nuestro LIVE SERVER pero para node 😁
Pagina Oficial: https://nodemon.io
npm: https://www.npmjs.com/package/nodemon
PM2 Nos permite lo mismo que nodemon y mucho más. Es más compleja y avanzada y nos permite monitorizar nuestra aplicación 24/7
Pagina Oficial: https://pm2.keymetrics.io/
npm: https://www.npmjs.com/package/pm2

PM2 al ser más avanzado y complejo nos va a relentizar toda la ejecución de nuestro código y por eso no es recomendable utilizarlo en etapas de desarrollo y si en producción.

Para las personas que usal la CLI de Ubuntu con WSL para Windows y les sale el error:

zsh: command not found: nodemon

Yo la manera en que lo solucioné fue cambiando la configuración de zsh. Yo no tengo mucha experiencia en este tema de las configuraciones de la CLI y donde npm instala globalmente los paquetes y que por medio del PATH apunta y lee estos paquetes para zsh.

Pero hasta lo que yo entendí es que el PATH no está apuntando a los paquetes globalmente instalados, por eso en la configuración que está en ~/.zshrc sugiere en la segunda línea cambiar el PATH:

# export PATH=$HOME/bin:/usr/local/bin:$PATH

Pero al descomentar esa linea no me funcionaba, así que buscando en internet encontré que la PATH correcta en ese caso debería ser:

export PATH=~/.npm-global/bin:$PATH

Con esta confiuración depués de reiniciar nuestra consola debería reconocer y estar apuntando a los paquetes globales que hemos instalados para poder usar los comandos.

Si alguien me puede explicar ocorregir si no he entendido bien relacionado a todo esto se los agradecería. Y espero que a alguien le sirva.

nodemon es para usar en desarrollo y PM2 es para produccion
Me gustaron mucho estas dos herramientas. Hay una opcion similar a nodemon que se llama supervisor, porque hace un tiempo tuve problemas y esa me salvó. Ahi el dato.

Nodemos y PM2

Nodemon es una utilidad que supervisará cualquier cambio en el codigo y reiniciará automáticamente su servidor. Lo que lo hace perfecto para el desarrollo.

Pagina: https://nodemon.io/

<h3>Algunas de sus principales funciones</h3>
  • Reinicio automático de la aplicación.
  • Detecta la extensión de archivo predeterminada para supervisar.
  • Ignorar archivos o directorios específicos.

Para activarlo colocamos simplemente en la terminal:

nodemon entorno.js

PM2 es un gestor de procesos daemon que le ayudará a administrar y mantener su solicitud en línea 24/7. Lo cual lo combierte en ideal para la produccion.

Pagina: https://pm2.keymetrics.io/

<h3>Algunas de sus principales funciones</h3>
  • Configurar el comportamiento.
  • Integra contenedores.
  • Ver y recargar.
  • Gestion de registros.
  • Sistema de modulos.
  • Modo cluster.
  • PAAS compatible.
  • Monitereo de KeyMetrics.
  • API.
  • Recarga maxima de memoria.

Para activarlo colocamos simplemente en la terminal:

pm2 start entorno.js // Arrancamos la produccion.
pm2 status // Vemos el id, name, mode, veces que se recargo, status, cpu y memory
pm2 logs // Vemos lo que esta ocurriendo con el proceso.
pm2 stop id //Tambien podemos colocar el nombre, la ruta del archivo.

¿PM2 conversa con apache? como podría hacer para el despligue usando solo PM2 o debería usar apache o ngix. cual seria la mejor forma ya que quisiera montar un server HTTPS.

que ventaja ofrece el nodemon en un proyecto de angular? cuando guardo los cambios el servidor los detecta. es verdad que de vez en cuando hay que pararlo, pero en términos generales funciona. gracias

Genial clase, que bueno cuando en los cursos ya sean los profesor o los estudiantes nos aportan herramientas que se utilizan ya sea en entorno de desarrollo o producción es un plus que poca plataformas o cursos se tiene, Genial 🔥

<h3>Herramientas para ser más felices: nodemon y PM2</h3>

Nodemon te permite revisar los cambios en modo desarrollo

PM2 es mejor para proyectos en producción

Nodemon: es una herramienta que ayuda en el proceso de desarrollar aplicaciones basadas en node.js al reiniciar automáticamente la aplicación de Node cuando se detectan cambios de archivo en el directorio.

PM2: es un administrador de procesos que ayudará a administrar y mantener solicitudes en línea.

  • Nodemon se ejecutan automáticamente, cuando detectan un cambio en nuestro código.
sudo npm install -g nodemon # enviroment dev

  • PM2, ademas de monitorear los cambios del código, permite ver dashbord y performace.
sudo npm install -g pm2 # enviroment prod

Uffff me encanto como da los cursos! uff clarisimo sin vueltas comparado con Oscar Barajas! super opuestos! un 10 para este profesor!!! clap clap! Aguante Juan Luis Guerra Hernandez!

Unas herramientas que nos ayudaran mucho en Node ya que algunas cosas pueden ser tediosas porque estamos haciendo cambios pequenos y revisando de forma constante. Nodemon es un gestor de Node como si fuera un demonio, puede tener un processo corriendo e ir observando cambios. Y cada que nodemon detecte cambios va a volver a ejecutar ese codigo. Primero para instalarlo tenemos

npm install -g nodemon

Ya que lo tengamos podemos usar nodemon y el archivo que vamos a usar

nodemon carpeta/archivos.js

Ahora cada que hagamos cambios esto se va a ir actualizando de forma automatica. Estos pueden ser cambios pequenos o cambios grandes. Pueden ser en procesos que corren una sola vez o que estan en constante. Nodemon aumentara nuestra productividad

En produccion tenemos PM2, parecido pero bastatne mas avanzada y mas compleja. No utilizar en desarrollo, ya que nos dara mas problemas que soluciones, pero podremos tener todo el codigo monitorizado y todo de forma automatica. Lo instalamos con

sudo npm install -g pm2

Ahora para inicializarlo lo hacemos con

pm2 start carpeta/archivo.js

Podremos ver que iniciaran un monton de cosas, usar varias instancias y algunas herramientas que podemos usar con pm2, como el pm2 monitor donde nos dara una key para ver todass las metricas de nuestra aplicacion. Esto es mas para aplicaciones complejas en produccion. con status podemos verl as veces revisadas, su cpu y su memoria. Para ver loss logs podemos usar

pm2 logs

y podremos ver en tiempo real los logs. Para parar todo podemos usar

pm2 stop

podemos decirle el nombre, el ID, o la ruta del archivo

Si quieren ejecutar el comando igual que el profesor estando en VSCode en windows, pueden apretar f1, luego escribir “Select Default Profile” y por ultimo elegir Gitbash. De esta manera su terminal de VSCode se volverá la terminal de Gitbash, por lo que no necesitaran cambiar los comandos a como los utilizarían en windows.

Nodemon y PM2

Nodemon es una herramienta de gestión dedicada a node que sirve como observador donde constantemente reporta los cambios realizados en nuestro código.

Instalamos en linux nuestro nodemon según el siguiente comando npm install -g nodemon y en caso de necesitar permisos de administrador simplemente anteponemos la palabra ‘sudo’, quedaría de esta forma sudo npm install -g nodemon.

Para utilizar nodemon solo debemos correr nuestro archivo según el comando nodemon ejemplo.js y listo, nodemon se encargara de escuchar todos los cambios de nuestro archivo y ejecutarlo.

PM2 es otra herramienta muy parecida a nodemon pero es mucho mas avanzada y compleja. Contiene mas features y esta enfocada a producción.

Para instalarlo podemos usar el comando npm install -g pm2 y para ser usado ejecutamos pm2 start ejemplo.js.

podremos utilizar un features como monitor, status de la app, los logs que pm2 crea al monitorizar pm2 logs, hacer un ‘stop’ de el/los hilos en ejecución según la id que nos otorga el monitor de la app pm2 stop 0.

Dato curioso de la palabra Daemon:
Según una investigación realizada por Richard Steinberg, la palabra daemon fue utilizada en 1963 por primera vez, en el área de la informática, para denominar a un proceso que realizaba backups en unas cintas. Este proceso se utilizó en el proyecto MAC del MIT y en una computadora IBM 7094.​ Dicho proyecto estaba liderado por Fernando J. Corbató, quien afirma que se basó en el demonio de James Maxwell, este daemon era una especie de vigilante que residía en medio de un recipiente dividido en dos, lleno de moléculas. El vigilante o daemon se encargaba de permitir, dependiendo de la velocidad de la molécula, que éstas pasaran de un lado al otro.

Nodemon en desarrollo.
Pm2 en producción.
Nodemon detecta cambios de forma automática, lo que nos ahorra en estar ejecutando en consola los comando de node, para cada cambio que hagamos.
Pm2 en monitorea lo que ocurre con la aplicación.

Genial… nunca había estado tan animado por un curso.

Si les da error ejecutenlo con “sudo” para hacerlo como administrador

nodemon donde estuviste cuando más te necesitaba? xD ya no sufriré tanto debuggeando mis aplicaciones gracias!!! 🙌

Suena como si fuera un Digimon 🤣

Nodemon: para desarrollo.
PM2: para producción.

Listo!! ahora viene lo bueno, a seguir con toda!!

Gracias, por los tips, vamos adelante con NodeJS

nodemon: npm install -g nodemon (Mejor para desarrollo)
pm2: npm install -g pm2 (Mejor para producción)

Pm2 se podria hacer un curso completo. Imagino

Productividad al tope === nodemon & pm2

Excelente pm2,muy completo

Los que tienen Windows 10 y no les funciono nodemon en VSC, corran el proyecto en cmd

**Nodemon y PM2: Los guardianes de tu aplicación Node.js** Imagina que estás construyendo una casa. Nodemon sería como un obrero inquieto que vigila cada cambio que haces en los planos. En cuanto modificas una pared, él automáticamente reconstruye la casa para que veas los resultados al instante. Es ideal para el desarrollo, donde necesitas ver los cambios de tu código reflejados en tiempo real. Por otro lado, PM2 es como un administrador de edificios. Se encarga de mantener encendidas las luces, de que el ascensor funcione y de que todo esté en orden, incluso cuando tú no estás. Es perfecto para la producción, donde quieres asegurarte de que tu aplicación esté siempre disponible y funcionando de manera óptima. **¿Cuál es la diferencia clave?** * **Nodemon:** * **Foco:** Desarrollo. * **Función:** Reinicia automáticamente el servidor cuando detectan cambios en los archivos. * **Ideal para:** Iterar rápidamente y ver los resultados de tus cambios. * **PM2:** * **Foco:** Producción. * **Función:** Gestiona y monitorea procesos Node.js de manera eficiente. * **Ideal para:** Mantener tu aplicación en funcionamiento 24/7, balancear carga, y gestionar múltiples instancias. **¿Cuándo usar cada uno?** * **Nodemon:** Durante el desarrollo local, cuando estás haciendo cambios constantes en tu código. * **PM2:** En entornos de producción, para desplegar y mantener tu aplicación de forma estable y escalable. **Resumen de sus principales características:** CaracterísticaNodemonPM2**Propósito**DesarrolloProducción**Funcionalidad**Reinicio automáticoGestión de procesos, monitoreo**Uso típico**LocalServidor**Ventajas**Rapidez en el desarrolloEstabilidad, escalabilidadExportar a Hojas de cálculo **Analogía final:** Si Nodemon es tu asistente personal que te ayuda a construir tu proyecto, PM2 es el gerente de tu empresa, asegurando que todo funcione sin problemas y que tus clientes estén satisfechos. **Notas adicionales:** * **Clustering:** PM2 permite crear clústeres de procesos para mejorar el rendimiento y la utilización de los recursos. * **Balanceo de carga:** Distribuye la carga de trabajo entre múltiples instancias de tu aplicación. * **Monitoreo:** Proporciona métricas en tiempo real sobre el estado de tus procesos.
Nodemon es una herramienta que se ha vuelto esencial para muchos desarrolladores de Node.js, facilitando el proceso de desarrollo al reiniciar automáticamente la aplicación cuando se detectan cambios en el código fuente. Aquí tienes una breve historia de Nodemon: Origen y Creación Creador: Nodemon fue creado por Remy Sharp, un desarrollador y autor conocido en la comunidad de JavaScript. Lanzamiento Inicial: Nodemon fue lanzado en 2010, en una época en que el ecosistema de Node.js estaba comenzando a crecer rápidamente. Propósito y Motivación Remy Sharp creó Nodemon para solucionar un problema común que enfrentan los desarrolladores de Node.js: la necesidad de reiniciar manualmente el servidor cada vez que se realiza un cambio en el código. Esta tarea repetitiva ralentiza el flujo de trabajo y se vuelve tediosa. Nodemon automatiza este proceso, mejorando significativamente la eficiencia y productividad del desarrollo. Evolución y Popularidad Desde su lanzamiento, Nodemon ha pasado por varias versiones y mejoras, respondiendo a las necesidades y feedback de la comunidad. Algunas características clave que han contribuido a su popularidad incluyen: Simplicidad: Nodemon es fácil de usar y configurar. Un solo comando puede iniciar el servidor con monitoreo de cambios. Flexibilidad: Permite configuraciones avanzadas a través de archivos de configuración o argumentos en la línea de comandos. Compatibilidad: Funciona bien con otros frameworks y herramientas dentro del ecosistema de Node.js. Integración en el Ecosistema de Desarrollo Nodemon se ha convertido en una herramienta estándar en el flujo de trabajo de muchos desarrolladores de Node.js. Se utiliza comúnmente junto con otros paquetes y frameworks como Express, Koa, y otros. También se integra bien con sistemas de construcción y tareas como Gulp y Grunt. Comunidad y Mantenimiento Nodemon ha sido adoptado por la comunidad de código abierto y ha recibido contribuciones de muchos desarrolladores. Aunque Remy Sharp sigue siendo el mantenedor principal, la comunidad juega un papel importante en la identificación de problemas y la implementación de mejoras.

Para instalación en Mac Agosto 2023

<sudo npm install -g nodemon
> 

Si tienen problemas con las versiones de node les recomiendo revisar nvm: https://github.com/nvm-sh/nvm

npx pm2 start entorno.js

para ver todas las ayudas disponibles para scriptear en windows sin problemas npx pm2 -h

para ejecutar pm2 en windows

npx pm2

Si ves que no actualiza y no encuentras solución. (como me pasó).

Utiliza la flag node -L dentro de la carpeta.

Puedes buscar node -L en ChatGpt para mejor información.

Eso solucionó mi problema.

en linux
los que tuvieron problemas al instalar/usar PM2
hagan estos pasos
https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

luego usen el siguiente comando para usar PM2 en la raiz del proyecto

npx pm2 start api/index.js

aplica tambien a nodemon