Maison >interface Web >js tutoriel >Construire des microservices avec Deno, Reno et Postgresql
Ce tutoriel montre la construction de microservices avec Deno et Reno, une bibliothèque de routage Deno légère. Nous allons créer un microservice interagissant avec une base de données.
Deno, un runtime JavaScript / TypeScript sécurisé, améliore Node.js en simplifiant la gestion des modules et l'alignement des API avec les normes du navigateur. Bien que fondamentalement différent, leur potentiel d'application se chevauche en grande partie. Node.js excelle chez HTTP Services, un NEOD NEO PARES.
Concepts clés:
std/http
de Deno permet la création de serveurs HTTP simple et le routage de base. deno-postgres
facilite les opérations de base de données robustes. Serveurs HTTP simples avec std/http
:
Avant d'introduire Reno, créons un serveur HTTP de base à l'aide de la bibliothèque standard de Deno. Installez Deno (par exemple, curl -fsSL https://deno.land/x/install/install.sh | sh -s v1.3.0
sur les systèmes de type UNIX). Mise à jour de la version 1.3.0 ou version ultérieure si nécessaire (deno upgrade --version 1.3.0
). Vérifiez l'installation avec deno --version
.
Créer server.ts
:
<code class="language-typescript">import { listenAndServe } from "https://deno.land/std@0.65.0/http/mod.ts"; const BINDING = ":8000"; console.log(`Listening on ${BINDING}...`); await listenAndServe(BINDING, (req) => { req.respond({ body: "Hello world!" }); });</code>
Exécutez avec deno run --allow-net server.ts
. Le --allow-net
Flag accorde un accès au réseau.
Améliorer std/http
pour les services complexes:
Le serveur de base std/http
est limité. Amélilons-le pour gérer un point de terminaison /messages
(Obtenez pour récupérer, publier pour ajouter des messages). Nous allons ajouter des vérifications conditionnelles pour les méthodes URL et HTTP.
Reno pour la gestion des routes:
Pour plusieurs points de terminaison, la gestion manuelle des routes devient lourde. Reno simplifie cela. Reconstruisons notre service de messages en utilisant Reno:
<code class="language-typescript">// ... (imports, including Reno) ... const routes = createRouteMap([ [ "/messages", forMethod([ ["GET", getMessages], ["POST", withJsonBody<messagepayload>(addMessage)], ]), ], ]); const router = createRouter(routes); // ... (server setup using the router) ...</messagepayload></code>
Reno gère l'analyse du chemin de chemin et la gestion des méthodes HTTP, permettant de se concentrer sur la logique d'application. C'est un routeur en tant que fonction, facilement intégré aux services NEO existants.
Construire un microservice de blog:
Nous allons créer un billet de blog Microservice avec PostgreSQL à l'aide du module deno-postgres
. Le point final /posts
prendra en charge GET (tous les messages, un seul post par id), Post (Créer un post) et le correctif (mise à jour du post). (Le code détaillé de cette section est omis pour la concision mais est disponible dans le texte d'origine.)
Gestion des erreurs:
Les classes d'erreur personnalisées améliorent la gestion des erreurs. Par exemple, une classe PostNotFoundError
peut être créée pour gérer les publications manquantes, renvoyant un 404 au lieu d'une erreur générique.
Résumé:
Alors que std/http
suffit pour les services simples, Reno améliore considérablement le développement des microservices en simplifiant la gestion des itinéraires et la gestion des erreurs. Pour les projets plus grands, un cadre comme le chêne pourrait être préféré, mais la nature légère de Reno est idéale pour de nombreux microservices.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!