La implementación de aplicaciones de Node.js no debería ser una molestia. Ponga en funcionamiento su servidor Express.js con la plataforma rentable y fácil de usar de Render.
A fines de 2022, Heroku suspendió su opción de nivel gratuito, lo que resultó en la eliminación del plan de suscripción gratuito disponible anteriormente para alojamiento web y otros servicios en la nube en su ecosistema.
Los niveles gratuitos son particularmente útiles y rentables si tiene la intención de implementar y alojar aplicaciones durante un período corto. Afortunadamente, existe una plataforma en la nube alternativa que, como Heroku, ofrece un nivel gratuito para sus servicios en la nube, entre otras ventajas.
En este artículo, exploraremos cómo implementar una API REST de Express.js en Render, una plataforma de hospedaje basada en la nube.
¿Qué es renderizar?
Render es una plataforma de alojamiento en la nube que proporciona una forma sencilla y sin problemas de implementar y administrar sitios web estáticos, aplicaciones web completas, API backend o bases de datos en la nube. Las características incluyen:
- Interfaz amigable: Render proporciona una interfaz simple e intuitiva que simplifica el proceso de implementación de aplicaciones creadas con lenguajes de programación populares como Python y Node.js.
- Bases de datos integradas: Render ofrece soporte integrado para bases de datos populares como PostgreSQL, MySQL y MongoDB, por lo que es fácil de configurar e integrar bases de datos en aplicaciones sin tener que configurar una base de datos separada servidores.
- Flujo de trabajo de implementación sin inconvenientes: Render proporciona funciones como implementaciones automatizadas, reversiones e integraciones con servicios populares como GitHub y GitLab.
- Dominios personalizados y SSL: Render ofrece la posibilidad de configurar nombres de dominio personalizados para sitios web y aplicaciones web, e incluye certificados SSL gratuitos para acceso HTTPS seguro.
Comparación entre Render y Heroku
Al igual que las otras plataformas en la nube, Render tiene sus ventajas y desventajas. Pero, ¿cómo se compara con soluciones en la nube populares como Heroku?
- Sencillez: Render proporciona una interfaz fácil de usar para implementar y administrar aplicaciones, con un enfoque en la facilidad de uso y la configuración mínima.
- Escalado automatizado: Render escala automáticamente las aplicaciones en función de la demanda, sin necesidad de ajustes manuales ni configuraciones complejas.
- Rentabilidad: Render ofrece precios rentables que incluyen un nivel gratuito para proyectos individuales y precios relativamente bajos para equipos y planes organizativos, lo que la convierte en una opción económica para alojar aplicaciones web a pequeña escala y aplicaciones comerciales de gran tamaño. proyectos
- Flexibilidad limitada: Su sencillez y configuración mínima puede ser una limitación para proyectos avanzados y complejos que requieran una mayor personalización y control sobre el entorno de alojamiento.
Configurar un nuevo proyecto en Render
Para comenzar, diríjase a sitio web de renders y regístrese e inicie sesión en su cuenta.
Render facilita la implementación y administración de las API de back-end al ofrecer soporte integrado para lenguajes de programación populares y servicios web que agilizan el proceso de implementación.
Esta guía hará uso de su función de servicios web para implementar una API REST de Express.js. Para continuar, primero deberá configurar una instancia de base de datos PostgreSQL en Render.
En la página de resumen, haga clic en el Nuevo PostgresSQL botón para configurar una nueva instancia.
A continuación, complete el nombre de su base de datos y haga clic en Crear base de datos. Finalmente, copie el URL de base de datos interna proporcionó. Lo usará para configurar la conexión entre su API Express REST y la base de datos de PostgreSQL.
Esencialmente, la URL de la base de datos interna se usa para establecer una conexión entre las aplicaciones que se ejecutan en los servidores de Render, como una API implementada o una aplicación web completa.
No obstante, si solo desea utilizar la base de datos PostgreSQL desde una aplicación implementada en otra plataforma, puede usar el URL de base de datos externa para configurar la conexión a la base de datos.
Crear una API REST de Express.js
Siga adelante y crear un servidor web Express.js. A continuación, instale los siguientes paquetes:
npm instalar pg knex
Puedes encontrar el código de este proyecto en este repositorio GitHub.
Configurar la conexión de la base de datos
Para configurar la conexión entre la API de Express.js y la instancia de PostgreSQL de Render, en el directorio raíz de la carpeta de su proyecto, cree un db.js archivo y agregue el código a continuación.
constante knex = requerir('knex');
constante db = knex({
cliente: 'pág',
conexión: {
Cadena de conexión: 'la URL de la base de datos',
SSL: {
rechazarNo autorizado: FALSO
}
}
});módulo.exportaciones = db;
A continuación, abra el índice.js archivo, y agregue el código debajo de eso implementa una API REST simple con cuatro rutas.
constante expresar = requerir("expresar");
constante aplicación = expreso()
constante db = requerir('./db')
constante PUERTO = proceso.env. PUERTO || 5000aplicación.use (express.json())
app.use (express.urlencoded({ extendido: verdadero }))aplicación.obtener('/', (req, res) => res.enviar('¡Hola Mundo!' ))
// Obtener todos los usuarios
aplicación.obtener('/usuarios', asíncrono (requerido, res) => {
intentar {
constante usuarios = esperar db.select().from('usuarios')
res.json (usuarios)
} atrapar (error) {
consola.error (error)
res.status(500).json({ mensaje: 'Error al recuperar usuarios' })
}
})
aplicación.post('/usuarios', asíncrono (requerido, res) => {
intentar {
constante usuario = esperar base de datos('usuarios').insertar({ nombre: req.body.name }).returning('*')
res.json (usuario)
} atrapar (error) {
consola.error (error)
res.status(500).json({ mensaje: 'Error al crear usuario' })
}
})// Eliminar un usuario existente
aplicación.eliminar('/usuarios/:id', asíncrono (requerido, res) => {
intentar {
constante { id } = req.parámetros
constante usuario = esperar base de datos('usuarios').where({ id }).delete().returning('*')
res.json (usuario)
} atrapar (error) {
consola.error (error)
res.status(500).json({ mensaje: 'Error al eliminar usuario' })
}
})
app.escuchar (PORT, () => consola.registro(`Servidor en PUERTO:${PORT}`))
Configurar el archivo migrate.js
Crear una nueva carpeta, guiones, en el directorio raíz de su proyecto, agregue un nuevo archivo, migrar.js, y finalmente, agregue el siguiente código:
constante db = requerir('../db');
(asíncrono () => {
intentar {
esperar db.schema.dropTableIfExists('usuarios')
esperar db.schema.withSchema('público').crear mesa('usuarios', (tabla) => {
tabla.incrementos()
tabla.cadena('nombre')
})
consola.registro('¡Tabla de usuarios creada!')
proceso.salir(0)
} atrapar (Error) {
consola.log (error)
proceso.salir(1)
}
})()
Este código creará un nuevo usuarios tabla en la base de datos con dos columnas: un campo de clave principal de incremento automático y un campo de nombre.
Finalmente, agregue estos comandos a su paquete.json archivo.
"guiones": {
"comenzar": "nodo index.js",
"emigrar": "secuencias de comandos de nodo/migrar.js",
},
Por último, para crear la tabla del usuario en la base de datos, debe ejecutar el migrar.js archivo como un script en su terminal usando el siguiente comando.
npm ejecutar migrar
Sin embargo, antes de ejecutar el comando, asegúrese de recuperar el URL de base de datos externa de la información de configuración de la instancia PostgreSQL de Render y péguela en el db.js file como la cadena de conexión.
Esto establecerá una conexión con la instancia de la base de datos desde su máquina local, lo que le permitirá crear la tabla antes de implementar la API. Una vez que se crea la tabla, puede dirigirse a la instancia PostgreSQL de su Render, recuperar el URL de base de datos internay actualizar el db.js archivo en consecuencia.
Implementar la API REST en Render
Primero, crear un nuevo repositorio en GitHub y empuje el código del proyecto. A continuación, inicie sesión en su cuenta de Render, haga clic en el Nuevo+ y seleccione el botón Servicio web opción del menú desplegable.
Finalmente, acceda a su cuenta de GitHub, seleccione el repositorio de su proyecto y conéctese a él en Render.
En la página de configuración del servicio web, proporcione un nombre para el nuevo servicio, especifique el directorio raíz del proyecto, el comando de compilación e inicio y, finalmente, haga clic en Crear servicio web. Una vez que se complete el proceso de implementación, copie la URL proporcionada para probar los puntos finales en Postman.
Pruebe los puntos finales de la API en Postman
Postman es una herramienta popular para desarrollar y probar API. Para familiarizarse con Postman, aprender a usarlo para probar una API.
Para probar la API implementada, haga una CORREO solicitar al /usuarios endpoint para almacenar datos en la base de datos PostgreSQL.
Finalmente, realice una solicitud GET para recuperar los datos almacenados.
¿Es Render una alternativa viable?
Render proporciona un proceso de configuración sencillo y una integración perfecta con los sistemas de control de versiones populares, lo que lo convierte en una buena plataforma alternativa de alojamiento en la nube.
Además, su modelo de precios competitivos y el soporte incorporado para herramientas de desarrollo populares lo convierten en una opción confiable y fácil de usar tanto para proyectos paralelos como para grandes aplicaciones comerciales.