Node.js和Express的新手,我试图理解两个似乎重叠的概念,路由与控制器。
我见过简单的app.js + routes / *示例,这似乎足以路由所需的各种请求。
但是,我也看到有人在谈论使用控制器,有些则暗示了更正式的MVC模型(???)。
如果有人可以帮助我清除这个谜团,并且如果你有一个在Node.js + Express框架中设置控制器的好例子,那将会很棒!
谢谢,
答案 0 :(得分:119)
Express(和Node一般)的一个很酷的事情是它没有对你提出很多意见;其中一个缺点是它没有对你提出任何意见。因此,您可以自由(并且必须!)自行设置任何此类意见(模式)。
对于Express,您绝对可以使用MVC模式,如果您愿意,路由处理程序当然可以充当控制器的角色 - 但您必须以这种方式进行设置。一个很好的例子可以在Express examples folder中找到,名为mvc
。如果查看lib/boot.js
,您可以看到他们如何设置示例以要求controllers
目录中的每个文件,并根据创建的方法的名称动态生成Express路由在控制器上。
答案 1 :(得分:0)
您可以只拥有一个路线文件夹,也可以同时拥有。例如,一些设置的路由/路径(例如/ 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
);
然后,在controllers文件夹中:
exports.getSub = (req, res, next) => {
req.params.id = req.users.id;
};
只做点什么。我已经完成了没有controllers文件夹的项目,并将所有逻辑放在一个地方。