Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
Javascript Express.js项目中控制器的放置位置_Javascript_Express - Fatal编程技术网

Javascript Express.js项目中控制器的放置位置

Javascript Express.js项目中控制器的放置位置,javascript,express,Javascript,Express,我对软件开发还是个新手,我很难理解不同类型项目的目录体系结构。我即将开始构建一个Express项目,我喜欢分离控制器类,而不是将逻辑放在路由回调中。但我真的不知道我应该把控制器放在哪里。以下是我目前的项目结构: . ├── bin ├── config ├── controllers ├── migrations ├── models ├── public │ ├── images │ ├── javascripts │ └── stylesheets ├── routes ├──

我对软件开发还是个新手,我很难理解不同类型项目的目录体系结构。我即将开始构建一个Express项目,我喜欢分离控制器类,而不是将逻辑放在路由回调中。但我真的不知道我应该把控制器放在哪里。以下是我目前的项目结构:

.
├── bin
├── config
├── controllers
├── migrations
├── models
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
├── routes
├── seeders
└── views

这是由Sequelize CLI生成的,但我将
controllers
添加到根目录中。我应该把控制器放在
src
目录中吗?如果有人能帮助我了解如何以最有效的方式设置此功能,我将不胜感激。似乎有太多的意见和相互矛盾的信息。谢谢。

快速项目的问题是,没有“唯一”的标准来设置项目结构。你可以用任何方式组织它,只要它有意义并且可以理解。在您的情况下,将控制器放在
controllers/
目录中完全没有问题,原因如下:

  • 将逻辑分离为单独的文件是有意义的
  • 只需读取目录的名称,就可以清楚地知道目录的用途
  • controllers/
    dir中的文件可以轻松导入到
    routes/
    文件中

  • 所以我想说没关系,你可以接受。但同时,如果你觉得自己在项目中迷失了方向,请随意重新组织——你不会因为没有任何规则而违反任何规则

    这种结构看起来像是一个图书馆,它不按书的类型而是按封面的颜色来分类。将属于相同功能(业务方面)的文件保存在同一目录中的项目更容易操作。团队中的新成员也更容易适应这种结构,并找到融入其中的方法。@axiac好的,但这不是很有帮助。该结构由express generator和sequelize CLI生成。如果有更好的方法,我会全神贯注地听,因为我正试图理解这些东西。