miniframe-router
Version:
Simple router for Express.js, making routes and controllers easy to manage.
44 lines (35 loc) • 915 B
text/typescript
import {
root,
get,
post,
routeScope as scope,
getRouter,
setRouterCotrollersPath,
} from "miniframe-router";
import { authenticate } from "../middlewares/auth";
import { validatePost } from "../middlewares/validation";
// Set the path to the controllers
setRouterCotrollersPath("src/controllers");
// Public routes
root("index#home");
get("/posts", "blog/posts#index");
get("/posts/:id", "blog/posts#show");
// Protected admin routes with authentication
scope(
"admin",
() => {
get("/posts", "blog/posts#index");
// Additional validation for create/update operations
post("/posts", "blog/posts#create", {
withMiddlewares: [validatePost],
});
post("/posts/:id", "blog/posts#update", {
withMiddlewares: [validatePost],
});
post("/posts/:id/destroy", "blog/posts#destroy");
},
{
withMiddlewares: [authenticate],
}
);
export default getRouter;