Le déploiement d'applications Node.js ne devrait pas être un problème. Obtenez votre serveur Express.js opérationnel avec la plate-forme rentable et conviviale de Render.
Fin 2022, Heroku a interrompu son option de niveau gratuit, ce qui a entraîné la suppression du plan d'abonnement gratuit précédemment disponible pour l'hébergement Web et d'autres services cloud dans son écosystème.
Les niveaux gratuits sont particulièrement pratiques et rentables si vous avez l'intention de déployer et d'héberger des applications pendant une courte période. Heureusement, il existe une plate-forme cloud alternative qui, comme Heroku, offre un niveau gratuit pour ses services cloud, entre autres avantages.
Dans cet article, nous allons explorer comment déployer une API REST Express.js sur Render, une plate-forme d'hébergement basée sur le cloud.
Qu'est-ce que le rendu?
Render est une plate-forme d'hébergement cloud qui offre un moyen transparent et simple de déployer et de gérer des sites Web statiques, des applications Web à part entière, des API backend ou des bases de données sur le cloud. Les fonctionnalités incluent :
- Interface conviviale: Render fournit une interface simple et intuitive qui simplifie le processus de déploiement d'applications créées à l'aide de langages de programmation populaires tels que Python et Node.js.
- Bases de données intégrées: Render offre une prise en charge intégrée des bases de données populaires telles que PostgreSQL, MySQL et MongoDB, ce qui en fait facile à configurer et à intégrer des bases de données dans des applications sans avoir à configurer une base de données séparée les serveurs.
- Flux de travail de déploiement transparent: Render fournit des fonctionnalités telles que les déploiements automatisés, les restaurations et les intégrations avec des services populaires tels que GitHub et GitLab.
- Domaines personnalisés et SSL: Render offre la possibilité de configurer des noms de domaine personnalisés pour les sites Web et les applications Web, et inclut des certificats SSL gratuits pour un accès HTTPS sécurisé.
Comparaison entre Render et Heroku
Comme les autres plates-formes cloud, Render a ses avantages et ses inconvénients. Mais comment se compare-t-il aux solutions cloud populaires comme Heroku ?
- Simplicité: Render fournit une interface conviviale pour le déploiement et la gestion des applications, en mettant l'accent sur la facilité d'utilisation et la configuration minimale.
- Mise à l'échelle automatisée: Render adapte automatiquement les applications en fonction de la demande, sans nécessiter d'ajustements manuels ni de configuration complexe.
- Rentabilité: Render offre une tarification rentable qui comprend un niveau gratuit pour les projets individuels et des prix relativement bas pour les équipes et plans d'organisation, ce qui en fait une option économique pour héberger à la fois des applications Web à petite échelle et de grandes projets.
- Flexibilité limitée: Sa simplicité et sa configuration minimale peuvent être une limitation pour les projets avancés et complexes qui nécessitent plus de personnalisation et de contrôle sur l'environnement d'hébergement.
Configurer un nouveau projet sur le rendu
Pour commencer, dirigez-vous vers Site Web de Render et inscrivez-vous et connectez-vous à votre compte.
Render facilite le déploiement et la gestion des API backend en offrant une prise en charge intégrée des langages de programmation et des services Web populaires qui rationalisent le processus de déploiement.
Ce guide utilisera sa fonctionnalité de services Web pour déployer une API REST Express.js. Pour suivre, vous devrez d'abord configurer une instance de base de données PostgreSQL sur Render.
Sur la page de présentation, cliquez sur le Nouveau PostgreSQL bouton pour configurer une nouvelle instance.
Ensuite, renseignez le nom de votre base de données, et cliquez sur Créer une base de données. Enfin, copiez le URL de la base de données interne fourni. Vous l'utiliserez pour configurer la connexion entre votre API Express REST et la base de données PostgreSQL.
Essentiellement, l'URL de la base de données interne est utilisée pour établir une connexion entre les applications exécutées sur les serveurs de Render, telles qu'une API déployée ou une application Web à part entière.
Néanmoins, si vous ne souhaitez utiliser la base de données PostgreSQL qu'à partir d'une application déployée sur une autre plate-forme, vous pouvez utiliser le URL de la base de données externe pour configurer la connexion à la base de données.
Créer une API REST Express.js
Allez-y et créer un serveur Web Express.js. Ensuite, installez les packages suivants :
npm installer pg knex
Vous pouvez trouver le code de ce projet dans ce Référentiel GitHub.
Configurer la connexion à la base de données
Pour configurer la connexion entre l'API Express.js et l'instance PostgreSQL de Render, dans le répertoire racine de votre dossier de projet, créez un db.js fichier et ajoutez le code ci-dessous.
constante knex = exiger('knex');
constante db = knex({
client: 'pg',
connexion: {
chaîne de connexion: 'l'URL de la base de données',
SSL: {
rejeterNon autorisé: FAUX
}
}
});module.exports = db;
Ensuite, ouvrez le index.js fichier, et ajoutez le code ci-dessous implémente une simple API REST avec quatre parcours.
constante exprimer = exiger("exprimer");
constante app = express()
constante db = exiger('./db')
constante PORT = processus.env. PORT || 5000app.use (express.json())
app.use (express.urlencodé({ étendu: vrai }))app.get('/', (req, res) => res.send('Bonjour le monde!' ))
// Récupère tous les utilisateurs
app.get('/utilisateurs', asynchrone (req, res) => {
essayer {
constante utilisateurs = attendre db.select().from('utilisateurs')
res.json (utilisateurs)
} attraper (erreur) {
console.error (erreur)
res.statut(500).json({ message: 'Erreur lors de la récupération des utilisateurs' })
}
})
app.post('/utilisateurs', asynchrone (req, res) => {
essayer {
constante utilisateur = attendre db('utilisateurs').insérer({ nom: req.body.name }).returning('*')
res.json (utilisateur)
} attraper (erreur) {
console.error (erreur)
res.statut(500).json({ message: 'Erreur lors de la création de l'utilisateur' })
}
})// Supprimer un utilisateur existant
app.delete('/utilisateurs/:id', asynchrone (req, res) => {
essayer {
constante { id } = req.params
constante utilisateur = attendre db('utilisateurs').where({ id }).delete().returning('*')
res.json (utilisateur)
} attraper (erreur) {
console.error (erreur)
res.statut(500).json({ message: 'Erreur lors de la suppression de l'utilisateur' })
}
})
app.listen (PORT, () => console.enregistrer(`Serveur au PORT :${PORT}`))
Configurer le fichier migrate.js
Créer un nouveau dossier, scénarios, dans le répertoire racine de votre projet, ajoutez un nouveau fichier, migrer.js, et enfin, ajoutez le code ci-dessous :
constante db = exiger('../db');
(asynchrone () => {
essayer {
attendre db.schema.dropTableIfExists('utilisateurs')
attendre db.schema.withSchema('public').createTable('utilisateurs', (tableau) => {
table.incréments()
table.string('nom')
})
console.enregistrer('Table d'utilisateurs créée !')
process.exit(0)
} attraper (erre) {
console.log (erreur)
process.exit(1)
}
})()
Ce code va créer un nouveau utilisateurs table dans la base de données avec deux colonnes: un champ de clé primaire auto-incrémenté et un champ de nom.
Enfin, ajoutez ces commandes à votre package.json déposer.
"scénarios": {
"commencer": "node index.js",
"émigrer": "node scripts/migrate.js",
},
Enfin, pour créer la table de l'utilisateur sur la base de données, vous devez exécuter le migrer.js fichier en tant que script sur votre terminal en utilisant la commande ci-dessous.
npm exécuter migrer
Cependant, avant d'exécuter la commande, assurez-vous de récupérer le URL de la base de données externe à partir des informations sur les paramètres de l'instance PostgreSQL de Render, et collez-les dans le db.js fichier comme chaîne de connexion.
Cela établira une connexion avec l'instance de base de données à partir de votre machine locale, vous permettant de créer la table avant de déployer l'API. Une fois la table créée, vous pouvez ensuite vous diriger vers l'instance PostgreSQL de votre Render, récupérer le URL de la base de données interne, et mettre à jour le db.js déposer en conséquence.
Déployer l'API REST sur Render
D'abord, créer un nouveau référentiel sur GitHub et poussez le code du projet. Ensuite, connectez-vous à votre compte Render, cliquez sur le Nouveau+ bouton et sélectionnez le Service Web option dans le menu déroulant.
Enfin, accédez à votre compte GitHub, sélectionnez le référentiel de votre projet et connectez-vous à celui-ci sur Render.
Sur la page des paramètres du service Web, fournissez un nom pour le nouveau service, spécifiez le répertoire racine du projet, la commande de construction et de démarrage, et enfin, cliquez sur Créer un service Web. Une fois le processus de déploiement terminé, copiez l'URL fournie pour tester les points de terminaison sur Postman.
Tester les points de terminaison API sur Postman
Postman est un outil populaire pour développer et tester des API. Pour vous familiariser avec Postman, apprendre à l'utiliser pour tester une API.
Pour tester l'API déployée, faites un POSTE demande au /utilisateurs endpoint pour stocker les données dans la base de données PostgreSQL.
Enfin, faites une requête GET pour récupérer les données stockées.
Le rendu est-il une alternative viable?
Render fournit un processus de configuration simple et une intégration transparente avec les systèmes de contrôle de version populaires, ce qui en fait une bonne plate-forme d'hébergement cloud alternative.
De plus, son modèle de tarification compétitif et sa prise en charge intégrée des outils de développement populaires en font une option fiable et conviviale pour les projets parallèles et les grandes applications commerciales.