No tienes acceso a esta clase

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

Despliegue de API Node.js con Heroku y TypeScript

20/22
Recursos

¿Cómo preparar un proyecto de Express con TypeScript para producción?

Llevar un proyecto de desarrollo a producción es un hito emocionante que marca la culminación del esfuerzo y la dedicación de un equipo. En este artículo, vamos a guiarte a través de los pasos esenciales para preparar un proyecto de Express con TypeScript para su despliegue en producción, utilizando un servicio en la nube como Heroku.

¿Cómo configurar el proyecto para el despliegue?

Para comenzar, es esencial establecer algunas configuraciones clave en tu proyecto de Express que has creado con TypeScript. Asegúrate de seguir los siguientes pasos:

  1. Configuración de variables de entorno y puerto predeterminado:

    • Reemplaza el puerto fijo en el código con una variable de entorno. Esto se realiza así:
      process.env.PORT || 3005
      

    Este cambio permite que la aplicación use un puerto proporcionado en entornos de producción mientras mantiene un valor por defecto para el desarrollo local.

  2. Subir cambios a un repositorio remoto:

    • Utiliza los comandos de Git para agregar y confirmar tus cambios:
      git add .
      git commit -m "update port"
      git push origin <nombre-rama>
      

    Estos pasos asegurarán que todos los cambios recientes en el proyecto estén en tu repositorio de hosting antes de proceder al despliegue.

¿Cómo desplegar en Heroku?

Heroku es una plataforma popular para alojar aplicaciones web, y usarla es un proceso sencillo pero efectivo. Sigue estas recomendaciones para desplegar tu proyecto:

  1. Creación de una cuenta y habilitación de la cuenta de pago:

    • Regístrate en Heroku. Nota: necesitarás una tarjeta de crédito para crear una cuenta completa incluso si planeas usar la capa gratuita. No te cobrarán sin tu consentimiento.
  2. Creación de una aplicación en Heroku:

    • Dirígete al panel de Heroku y crea una nueva aplicación. Elige un nombre único y, en este caso, recomendamos incluir un identificador relevante como "platzi-store-ts".
  3. Conectar el repositorio:

    • Puedes vincular directamente tu cuenta y repositorio de GitHub a Heroku para facilitar el proceso de despliegue.
  4. Despliegue del proyecto:

    • Selecciona la rama adecuada desde donde deseas desplegar. Luego, simplemente despliega por primera vez y espera a que el servidor instale las dependencias y compile el proyecto.

¿Cómo verificar y conectar tu backend con el front?

Una vez que el despliegue haya finalizado, recibirás una URL que podrás usar para conectar tu API backend con tu frontend. Para verificar que todo funcione correctamente sigue estos pasos:

  1. Verifica el acceso a la API:

    • Accede a la URL proporcionada por Heroku y asegúrate de que tu API esté funcionando esperando recibir un JSON como respuesta.
  2. Actualizar el frontend:

    • Asegúrate de que tu frontend utilice la nueva URL del backend, permitiendo así que ambas partes de tu aplicación interactúen en producción.
  3. Prueba de red (opcional):

    • Inspecciona el tráfico de red en el navegador para ver cómo se gestionan las solicitudes desde y hacia tu API.

Este proceso asegura que tu aplicación está lista para abrirse al mundo real y ofrece una experiencia fluida tanto para los desarrolladores como para los usuarios. Recuerda compartir tus logros y aprovechar las herramientas de Heroku para mantener tu aplicación actualizada y eficiente.

Aportes 7

Preguntas 1

Ordenar por:

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

Ojito 👁 porque hasta este punto la API estará desplegada por un lado (Heroku) y el Front por otro (Netlify)… Y en ningún momento se configuró CORS en la API (Cross-origin resource sharing - Uso compartido de recursos de origen cruzado), por lo que es muy probable que cuando su Front haga algún request a la API no pueda traer nada de info y en la consola se muestre un error de CORS.

Para solucionarlo, por ahora, pueden habilitar CORS para cualquier dominio así (recuerden, desde la API que creamos en Express):

$ npm install cors

const express = require('express');
const cors = require('cors');
const app = express();

app.use(cors());

... // el código de las rutas normal

Ahora, no es muy buena idea dejarlo abierto a todos los dominios… En la próxima clase compraremos un dominio que lleve al Frontend de nuestra aplicación; cuando lo tengan listo, pueden limitar la configuración de CORS al dominio de su Front 😃 así:

const express = require('express');
const cors = require('cors');
const app = express();

const corsOptions = {
  origin: 'https://laUrlDelFront.com',
};

app.use(cors(corsOptions));

... // el código de las rutas normal

¡Saludos! 🚀

Ya que heroku ya no tiene capa gratuita, les sugiero Railway

https://railway.app/

Tener en cuenta que heroku necesita(ba) de una tarjeta para activar la capa de acceso gratuito

Así quedó la API en heroku: platzi-store-ts-api

Hoy en día no es necesario registrar una tarjeta de crédito para desplegar en Heroku 🤔 (solo para que no se preocupen… o en mi caso nunca me lo ha pedido).

Deploy de Express en Heroku

1.- En src > index.ts:
Cambiar la constante port

const port = process.env.PORT || 3005;

2.- Seguir los comandos de git para actualizar cambios.

git add .
git commit -m "UPDATE PORT"

En caso de no tener un repositorio en Github(necesario), debemos crear uno, luego:

git remote add origin url-de-tu-repositorio
git push origin master

3.- Crear una cuenta en Heroku: https://www.heroku.com/
4.- Create app con heroku
5.- Conectar con Github
6.- Buscar el repo que creamos y click en Connect
6.1.- Click en deploy branch (debe estar en master o la rama principal de tu repositorio)
LISTO!