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 - the-teacher
위 내용은 miniframe-router: Express.JS 애플리케이션용 라우터의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!