Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在MVC设计中,每个模型还是每个功能组应该有一个控制器?_Node.js_Express_Model View Controller_Model_Controller - Fatal编程技术网

Node.js 在MVC设计中,每个模型还是每个功能组应该有一个控制器?

Node.js 在MVC设计中,每个模型还是每个功能组应该有一个控制器?,node.js,express,model-view-controller,model,controller,Node.js,Express,Model View Controller,Model,Controller,例如,假设您有一个用户模型和一个验证令牌模型(后者用于用户的电子邮件验证),您可以为每个模型都有一个控制器,或者您可以有一个名为“注册”的控制器。我建议这样做的原因是,如果每个模型都有一个控制器,verifyUser()函数将位于何处,因为在这个函数中,您可以同时找到一个验证令牌和一个用户?将控制器想象为一个功能的端点,您可以将与模型关联的CRUD函数保留在路由之外,并根据特定功能调用所需功能(如verifyUser())。然后,人们又会对拥有不同的体系结构有着自以为是的理由。我只是发现委派从模

例如,假设您有一个
用户
模型和一个
验证令牌
模型(后者用于用户的电子邮件验证),您可以为每个模型都有一个控制器,或者您可以有一个名为“注册”的控制器。我建议这样做的原因是,如果每个模型都有一个控制器,
verifyUser()
函数将位于何处,因为在这个函数中,您可以同时找到一个验证令牌和一个用户?

将控制器想象为一个功能的端点,您可以将与模型关联的CRUD函数保留在路由之外,并根据特定功能调用所需功能(如verifyUser())。然后,人们又会对拥有不同的体系结构有着自以为是的理由。我只是发现委派从模型交互(模型上的CRUD)中分离端点(路由)更容易。好的,但是verifyUser()函数对用户和验证令牌都执行CRUD,因此如果将一个控制器放置在另一个控制器中,那么它将变得多余。这就是为什么注册控制器更有意义,因为它只包含与注册过程相关的函数,而不管该过程涉及哪种模型。这基本上就是我所说的。路由/端点是控制器,应该处理功能,而不是特定的模型,也不是特定于模型的CRUD函数。