覆盖Express路由器

时间:2015-06-16 13:46:26

标签: node.js express

我想在Express上创建基于MVC的架构,因为我要覆盖Express Router。

请考虑以下为例:

// usual express router
var userRouter = require('express').Router();    
userRouter.get("/",function(req, res, next){
    //.....
});    
userRouter.post("/",function(req, res, next){
    //.....
});    
app.use('/users', userRouter);    

//routes.js    
module.exports = function(app){
    var userRouter = app.Router();    
    userRouter.get('/', {controller: 'User', action: 'show'});
    userRouter.post('/', {controller: 'User', action: 'new'});    
    app.use('/users', userRouter);
};

那么,我是否必须像使用我的控制器解析功能那样再次实现路由器?

1 个答案:

答案 0 :(得分:0)

重写已有的功能通常被认为是不好的做法。 Express可以选择通过中间件服务修改数据。

如果本机路由器和中间件功能都不适合您,那么也许您应该将框架更改为Hapi。

我判断自己的短暂体验,Hapi为路由和服务器魔术提供了更好的适应性。