请问node express中route跟controller的区别?

如题,主要作用区别是什么呢?

阅读 6.8k
2 个回答

Express里是木有controller的。controller是在实践MVC开发模式的过程中处理业务逻辑的代码的合集。

使用Express开发的时候,router做路由,专门处理路径。把某一个路径的请求和处理逻辑的controller对应起来。如:

    var router = express.Router();

    router.route('/pets')
        .post(authController.isAuthenticated, petController.postPets)
        .get(authController.isAuthenticated, api.http(petApi.browse));

    router.route('/pets/:pet_id')
        .get(authController.isAuthenticated, petController.getPet)
        .put(authController.isAuthenticated, petController.updatePet)
        .delete(authController.isAuthenticated, petController.deletePet);

以上代码是API,所以没有具体的View的概念。或者说View就是消费这些API的前端APP。

我的印象中,express 是不区分 router, middleware, controller的。 也可以说他们都是 middleware

MVC 是一种 pattern,所以你可以从思维上应用这些概念。

express 有一个 MVC 的例子: https://github.com/expressjs/... (有点老了。。。)

另外,sails 等框架提供了基于 express 的抽象,实现了 MVC pattern。

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