Maison >interface Web >js tutoriel >Construire des microservices avec Deno, Reno et Postgresql

Construire des microservices avec Deno, Reno et Postgresql

Joseph Gordon-Levitt
Joseph Gordon-Levittoriginal
2025-02-10 11:36:11919parcourir

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.

Building Microservices with Deno, Reno, and PostgreSQL

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:

  • Les API sécurisées de Deno et les API alignées par le navigateur sont idéales pour les services HTTP.
  • Le module std/http de Deno permet la création de serveurs HTTP simple et le routage de base.
  • Reno rationalise la déclaration de route et la gestion des méthodes HTTP, améliorant l'organisation du code.
  • L'intégration postgresql via deno-postgres facilite les opérations de base de données robustes.
  • Les classes d'erreur personnalisées améliorent la clarté du traitement des erreurs dans la communication client-serveur.
  • Deno, Reno et PostgreSQL se combinent pour le développement de microservices évolutif et efficace.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn