在 Express 中对路线进行分组

新手上路,请多包涵

我们可以在 Laravel 中像这样对路由进行分组:

 Route::group("admin", ["middleware" => ["isAdmin"]], function () {

     Route::get("/", "AdminController@index");
     Route::post("/post", ["middleware" => "csrf", "uses" => "AdminController@index");

});

基本上,在 admin 组中定义的所有路由都会自动获取 isAdmin 中间件和组名。例如 post 端点监听 admin/post 不是 /post

有没有办法用 Express 做同样的事情?这太棒了,因为我的 Laravel 路线曾经很干净,而我的 Express 路线有点混乱/重复。

这是我目前在 Express 上的 routes.js。

 app.get("/admin", [passportConfig.isAuthenticated, passportConfig.isAdmin], AdminController.index);
app.post("/admin", [passportConfig.isAuthenticated, passportConfig.isAdmin], AdminController.postIndex);

谢谢你。

原文由 Aris 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 865
1 个回答

自 express 4 以来,您可以定义和组合路由器

const app = require('express');
const adminRouter = app.Router();

adminRouter.use(isAdmin);
adminRouter.get('/', admin.index); /* will resolve to /admin */
adminRouter.post('/post', csrf, admin.index); /* will resolve to /admin/post */

app.use('/admin', adminRouter);

希望有帮助!

原文由 Melle 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题