首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node.js + Express:路由与控制器

Node.js + Express:路由与控制器
EN

Stack Overflow用户
提问于 2012-06-18 09:52:14
回答 2查看 79.6K关注 0票数 104

刚接触Node.js和Express时,我试图理解这两个似乎重叠的概念,路由与控制器。

我已经看过简单的app.js + routes/*的例子,这似乎足以路由各种需要的请求。

然而,我也看到人们在谈论使用控制器,有些人暗示了一个更正式的MVC模型(?)。

如果有人能帮我解开这个谜团,那就太好了,如果你有一个在Node.js + Express框架中设置控制器的好例子,那就太好了!

谢谢,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-18 12:44:01

Express (和一般的Node )最酷的一件事是它不会给你强加很多观点;一个缺点是它不会把任何观点强加给你。因此,您是自由的(并且是必需的!)自己建立任何这样的观点(模式)。

在Express的情况下,您绝对可以使用MVC模式,如果您愿意,路由处理程序当然可以充当控制器的角色--但您必须以这种方式设置它。在名为mvcExpress examples folder中可以找到一个很好的示例。如果查看lib/boot.js,就会看到他们如何将示例设置为要求controllers目录中的每个文件,并根据在控制器上创建的方法的名称动态生成快速路由。

票数 133
EN

Stack Overflow用户

发布于 2019-08-20 01:40:49

你可以只有一个routes文件夹,或者两者都有。例如,某些设置的路由/路径(例如/user/:id)并将它们连接到Get、Post、Put/Update、Delete等,然后在routes文件夹中:

代码语言:javascript
复制
const subController = require('./../controllers/subController');

Router.use('/subs/:id');

Router
 .route('subs/:id')
 .get(subController.getSub)
 .patch(subController.updateSub);

然后,在控制器文件夹中:

代码语言:javascript
复制
exports.getSub = (req, res, next) => {
  req.params.id = req.users.id;
};

只是为了做点什么。我做过没有控制器文件夹的项目,把所有的逻辑都放在一个地方。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11076179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档