En este artículo vas a aprender cómo subir tu aplicación web de Node.js en Heroku, sin importar el framework que uses (por ejemplo, express) de manera fácil, rápida y gratuita.
Recuerda que para publicar tu app de Node en Heroku debes tener una cuenta de Heroku (no importa si es gratuita) e instalar la CLI de Heroku.
También debes contar con Git, si no lo tienes, mira cómo comenzar con GitHub desktop.
Te voy a mostrar un ejemplo para publicar una app de Node.js a la nube en Heroku. En concreto, usaré una app de demostración de express que publiqué hace tiempo.
En resumen es:
heroku login
para iniciar sesiónheroku create nombre_de_app
dentro de tu proyectogit push heroku master
Una vez que tengas la CLI de heroku ejecuta:
heroku login
Inicia sesión en el navegador, autoriza la app y listo.
Tu proyecto debe ser un proyecto de Git, ya mencioné que puedes usar Github desktop. Si sabes usar la línea de comandos de git también es válido, el punto es que tu proyecto debe usar git.
Abre la línea de comandos y navega a tu proyecto (cd nombre_de_proyecto
), después ejecuta:
heroku create nombre-de-tu-app
Eso modificará el repositorio de git para que luego lo puedas publicar en Heroku.
Por otro lado, en tu app debe estar definido el package.json
pues Heroku leerá las dependencias del mismo e instalará los módulos por ti.
Ahora necesitamos dos cosas:
Este archivo indica cómo se va a ejecutar tu app de Node en Heroku. Cuando desarrollamos localmente probablemente escribimos:
node index.js
Exactamente eso debemos indicar en el Procfile, así:
web: node index.js
Como puedes ver, es un archivo sin extensión. Indica que el tipo de proceso es web, y para ejecutarse debe invocar a node index.js
Haz commit de este archivo como normalmente lo haces.
En Heroku no vamos a tener cualquier puerto disponible, pues lo provee, digamos, el sistema. El puerto estará en process.env.PORT
así que si tenemos un código algo así:
const express = require("express"),
path = require("path"),
app = express(),
puerto = 3000; // <-- este es el puerto local
Debemos cambiarlo para que, si está definido el puerto en el entorno, use ese en su lugar. Así:
const express = require("express"),
path = require("path"),
app = express(),
puerto = process.env.PORT || 3000; // Si está definido en el entorno, usarlo. Si no, el 3000
Fue un ejemplo, en tu código puedes definir el puerto en otro lugar, pero así es en el mío.
También haz commit de este cambio, es decir, tu flujo de trabajo no va a cambiar, sigue subiendo tus cambios.
Cuando hayas hecho commit y todo esté listo, ejecuta:
git push heroku master
Estamos subiendo nuestros cambios a la rama master de heroku. Verás algo así:
Y al final te dará la URL de tu proyecto:
La cual puedes visitar y estará lista para lo que quieras:
Si después haces cambios en tu aplicación, haz lo siguiente:
git push heroku master
y tu app será desplegadaDe este modo puedes subir tus apps de Node y Express (u otro framework) a la nube de manera gratuita y fácil. Recuerda que el plan gratuito tiene sus restricciones pero de eso no vamos a hablar aquí.
Por cierto, por ahora vimos cómo hacerlo sin base de datos, en el futuro espero escribir sobre cómo usar las bases de datos de Heroku.
Mira el código del proyecto en mi GitHub. Aprende en mi blog más cosas sobre JavaScript en general
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.