miniframe-router — Express.JS 应用程序的极简路由器,灵感来自 Ruby on Rails。这是我的制作方法。
路由在简单应用程序中的外观示例。
// 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 的启发。这也是一个很好的机会来刷新我创建 NPM 包的知识,这是我 9 年来没有做过的事情。
这简化了应用程序结构并避免主应用程序文件混乱。
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 - the-teacher
以上是miniframe-router:Express.JS 应用程序的路由器的详细内容。更多信息请关注PHP中文网其他相关文章!