ホームページ >ウェブフロントエンド >jsチュートリアル >Deno、Reno、およびPostgreSQLを備えたマイクロサービスを構築します

Deno、Reno、およびPostgreSQLを備えたマイクロサービスを構築します

Joseph Gordon-Levitt
Joseph Gordon-Levittオリジナル
2025-02-10 11:36:11932ブラウズ

このチュートリアルでは、軽量のデノルーティングライブラリであるデノとリノを備えたマイクロサービスの構築を示しています。データベースと対話するマイクロサービスを作成します

安全なJavaScript/TypeScriptランタイムであるDenoは、モジュール管理を簡素化し、APIをブラウザー標準に合わせてNode.jsを改善します。 根本的には異なりますが、それらのアプリケーションの可能性は主に重複しています。 node.jsはHTTPサービスで優れています Building Microservices with Deno, Reno, and PostgreSQL

重要な概念:

DENOの安全な環境とブラウザに配置されたAPIは、HTTPサービスに最適です。 denoの

モジュールは、簡単なHTTPサーバーの作成と基本ルーティングを有効にします。
    RENOはルート宣言とHTTPメソッド管理、コード組織の改善を合理化します。
  • による統合後の統合は、堅牢なデータベース操作を促進します。
  • std/httpカスタムエラークラスは、クライアントサーバー通信のエラー処理の透明度を強化します。
  • deno、reno、およびpostgresqlは、スケーラブルで効率的なマイクロサービス開発のために組み合わされます。
  • deno-postgres
  • を備えた簡単なHTTPサーバー
  • RENOを導入する前に、Denoの標準ライブラリを使用して基本的なHTTPサーバーを構築しましょう。 Deno(例えば、Unix-like Systemsに)をインストールします。 必要に応じてバージョン1.3.0以降に更新します(
  • )。
でインストールを確認します

createstd/http

で実行します。 curl -fsSL https://deno.land/x/install/install.sh | sh -s v1.3.0フラグは、ネットワークアクセスを付与します。deno upgrade --version 1.3.0 複雑なサービスのためのdeno --version

改善

server.ts基本的な

サーバーは制限されています。 A
<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>
エンドポイントを処理するために強化しましょう(取得のために入手し、メッセージを追加するための投稿)。 URLおよびHTTPメソッドの条件付きチェックを追加します ルート管理のための

deno run --allow-net server.tsreno:--allow-net

複数のエンドポイントの場合、手動で管理するルートの管理が面倒になります。リノはこ​​れを簡素化します。 RENO:を使用してメッセージサービスを再構築しましょう std/http renoは、パスの解析とHTTPメソッド管理を処理し、アプリケーションロジックに焦点を合わせます。 これは機能として、既存のDenoサービスに簡単に統合されています。

std/httpブログの構築マイクロサービス:/messages

モジュールを使用してブログ投稿マイクロサービスを作成します。 エンドポイントは、GET(すべての投稿、IDによる単一の投稿)、投稿(投稿の作成)、およびパッチ(更新投稿)をサポートします。 (このセクションの詳細なコードは簡潔にするために省略されていますが、元のテキストで入手できます。)

エラー処理:
<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>

カスタムエラークラスはエラー処理を改善します。 たとえば、欠落した投稿を処理するためにPostNotFoundErrorクラスを作成して、一般的なエラーの代わりに404を返します。

概要:

は簡単なサービスで十分ですが、Renoはルートの管理とエラーの処理を簡素化することにより、マイクロサービス開発を大幅に改善します。 大規模なプロジェクトでは、オークのようなフレームワークが好ましいかもしれませんが、リノの軽量性は多くのマイクロサービスに最適です。

以上がDeno、Reno、およびPostgreSQLを備えたマイクロサービスを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。