ホームページ >ウェブフロントエンド >jsチュートリアル >miniframe-router: Express.JS アプリケーション用ルーター
miniframe-router — Ruby on Rails からインスピレーションを得た、Express.JS アプリケーション用の最小限のルーターです。作り方はこちらです。
単純なアプリケーションでのルーティングの例。
// Root routes root("index#home"); // Basic CRUD routes get("/users", "users#index"); get("/users/:id", "users#show"); post("/users", "users#create"); post("/users/:id", "users#update"); post("/users/:id/destroy", "users#destroy"); // Posts routes with scope scope("blog", () => { get("/posts", "posts#index"); get("/posts/:id", "posts#show"); post("/posts", "posts#create"); post("/posts/:id", "posts#update"); post("/posts/:id/destroy", "posts#destroy"); });
私は約 10 年間 NodeJS アプリケーションを書いていませんでした。 Telegram Mini Apps に興味があったので、この新しい分野を探索するためにいくつかの簡単なプロジェクトを構築することにしました。
このために、アプリケーションのバックエンドにルーティングが必要でした。既存のソリューションにはあまり感銘を受けなかったので、シンプルで効果的で、Ruby on Rails からインスピレーションを得た独自のルーターを作成することにしました。また、9 年間行っていなかった NPM パッケージの作成に関する知識を更新する素晴らしい機会でもありました。
これにより、アプリケーションの構造が簡素化され、メインのアプリケーション ファイルが乱雑になることがなくなります。
import { root, get, post, routeScope as scope, getRouter, } from "miniframe-router"; // Root routes root("index#home"); // Basic CRUD routes get("/users", "users#index"); get("/users/:id", "users#show"); post("/users", "users#create"); post("/users/:id", "users#update"); post("/users/:id/destroy", "users#destroy"); // Posts routes with scope scope("blog", () => { get("/posts", "posts#index"); get("/posts/:id", "posts#show"); post("/posts", "posts#create"); post("/posts/:id", "posts#update"); post("/posts/:id/destroy", "posts#destroy"); }); export default getRouter;
アプリケーションのシンプルで効果的なエントリ ポイント: src/index.js または src/main.js。
import express from "express"; import getRouter from "./routes"; // <<< DEFINE ROUTES const app = express(); app.use(express.json()); app.use(getRouter()); // <<< USER ROUTES app.listen(3000, () => { console.log("Demo app is running on http://localhost:3000"); });
コントローラーは src/controllers ディレクトリにあります。
MyApp └── src ├── controllers │ ├── blog │ │ └── postsController.ts │ ├── indexController.ts │ └── usersController.ts ├── index.ts └── routes └── index.ts
例: src/controllers/usersController.ts (または .js)。
// Root routes root("index#home"); // Basic CRUD routes get("/users", "users#index"); get("/users/:id", "users#show"); post("/users", "users#create"); post("/users/:id", "users#update"); post("/users/:id/destroy", "users#destroy"); // Posts routes with scope scope("blog", () => { get("/posts", "posts#index"); get("/posts/:id", "posts#show"); post("/posts", "posts#create"); post("/posts/:id", "posts#update"); post("/posts/:id/destroy", "posts#destroy"); });
プロジェクト コードとドキュメント: GitHub - miniframe-router
NPM パッケージ: miniframe-router
いいね、シェア、購読してください!建設的なフィードバックはいつでも大歓迎です。
著者のページ: GitHub - 先生
以上がminiframe-router: Express.JS アプリケーション用ルーターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。