miniframe-router — un routeur minimaliste pour les applications Express.JS, inspiré de Ruby on Rails. Voici comment je l'ai fait.
Exemple de ce à quoi pourrait ressembler le routage dans une application simple.
// 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"); });
Je n'avais pas écrit d'applications NodeJS depuis environ 10 ans. Curieux de connaître Telegram Mini Apps, j'ai décidé de construire quelques projets simples pour explorer ce nouveau domaine.
Pour cela, j'avais besoin de routage pour le backend de mes applications. Les solutions existantes ne m'ont pas vraiment impressionné, j'ai donc décidé de créer mon propre routeur : simple, efficace et inspiré de Ruby on Rails. C’était aussi une belle opportunité de rafraîchir mes connaissances sur la création de packages NPM, quelque chose que je n’avais pas fait depuis 9 ans.
Cela simplifie la structure de la candidature et évite d'encombrer le dossier de candidature principal.
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;
Un point d'entrée simple et efficace pour l'application : src/index.js ou 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"); });
Les contrôleurs se trouvent dans le répertoire src/controllers.
MyApp └── src ├── controllers │ ├── blog │ │ └── postsController.ts │ ├── indexController.ts │ └── usersController.ts ├── index.ts └── routes └── index.ts
Exemple : src/controllers/usersController.ts (ou .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"); });
Code du projet et documentation : GitHub - miniframe-router
Package NPM : miniframe-router
Aimez, partagez et abonnez-vous ! Les commentaires constructifs sont toujours les bienvenus.
Page de l'auteur : GitHub - le-prof
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!