关于readPostsByUserId控制器归属与跨模型路由导入的疑问
关于User/Post模型控制器与路由配置的疑问解答
1. readPostsByUserId 放在哪个控制器更合适?
两种方案都有合理性,核心看项目的代码组织原则:
- 若遵循「控制器对应核心资源」的RESTful风格:放在
posts.controller.js更合适。这个函数的核心是查询并返回Post资源,只是附加了「归属某用户」的过滤条件,本质仍是对Post的操作,和其他Post相关逻辑放在一起,职责更清晰。 - 若项目按「用户模块聚合」组织:放在
users.controller.js也没问题。比如把所有和用户强关联的操作(获取用户文章、评论、收藏等)都归到用户控制器下,方便模块内统一管理。
建议优先选前者,多数后端项目会以资源为核心划分控制器,能让后续维护更高效。
2. 在用户路由文件中导入Posts控制器配置路由是否可行?
完全可行,路由的核心作用就是把请求路径映射到具体处理逻辑,并不限制逻辑的来源控制器。
这种做法在嵌套路由场景里很常见:/users/:id/posts的语义是「获取某用户的文章」,把它挂在用户路由下更符合URL的层级语义;而处理逻辑交给Posts控制器,又能保证所有Post相关操作的代码集中在一处,不会分散。
只要在项目里保持这种路由配置的一致性(比如所有用户相关的嵌套资源都在用户路由里配置),就不会出现代码混乱。
内容的提问来源于stack exchange,提问作者fjplaurr
相关产品推荐
相关产品推荐

