Node.js+;快车:路线vs控制器

Node.js+;快车:路线vs控制器,node.js,express,Node.js,Express,刚接触Node.js和Express,我试图理解两个似乎重叠的概念,路由和控制器 我见过simple执行app.js+routes/*的示例,这似乎足以路由所需的各种请求 然而,我也看到有人在谈论使用控制器,有些人认为这意味着更正式的MVC模型(???) 如果有人能帮我解开这个谜团就太好了,如果你有一个在Node.js+Express框架中设置控制器的好例子就太好了 谢谢,Express(和Node)最酷的一点是它不会给你带来太多的意见;缺点之一是它不会把任何意见强加给你。因此,你可以自由(并且

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

我见过simple执行app.js+routes/*的示例,这似乎足以路由所需的各种请求

然而,我也看到有人在谈论使用控制器,有些人认为这意味着更正式的MVC模型(???)

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


谢谢,

Express(和Node)最酷的一点是它不会给你带来太多的意见;缺点之一是它不会把任何意见强加给你。因此,你可以自由(并且被要求!)自己建立任何这样的观点(模式)


在Express中,您完全可以使用MVC模式,如果您愿意的话,路由处理程序当然可以充当控制器的角色,但您必须这样设置。一个很好的例子可以在中找到,叫做。如果您查看,您可以看到他们如何设置示例,要求
控制器
目录中的每个文件,并根据在控制器上创建的方法的名称动态生成快速路由。

您可以只拥有一个路由文件夹,也可以同时拥有这两个文件夹。例如,一些设置路由/路径(ex./user/:id)并将其连接到Get、Post、Put/Update、Delete等,然后在routes文件夹中:

const subController = require('./../controllers/subController');

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

Router
 .route('subs/:id')
 .get(subController.getSub)
 .patch(subController.updateSub);
然后,在控制器文件夹中:

exports.getSub = (req, res, next) => {
  req.params.id = req.users.id;
};
只是为了做点什么。我做过没有控制器文件夹的项目,并将所有逻辑放在一个地方。

的第一段也对这两个术语进行了很好的解释/区分。