node.js - 在 Express 中对路线进行分组

标签 node.js express middleware

我们可以在 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);

谢谢。

最佳答案

从 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); 

希望有帮助!

关于node.js - 在 Express 中对路线进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38894102/

相关文章:

javascript - 为什么 Chrome 在 "strict mode"中使用 block 内的函数时仍然保持沉默?

node.js - LAN + Internet Meteor 应用程序可以吗?

javascript - 导入多个集合(nodejs、mongodb)

c# - 从自定义中间件调用 Controller 和操作

javascript - 我可以用什么来替换嵌套的异步回调?

rust - 如何在 actix-web 1.0 中间件中读取请求的主体?

node.js - 我如何使用 Forever With Express 来保持 NodeJS 服务器的运行?

javascript - 如何使用 Unirest 在 Nodejs 中调用多个请求

node.js - 使用 html 表单数据进行发布时的 Firebase 函数路由问题

javascript - Express 和 SimpleHTTPServer 有什么区别