javascript - 关于如何基于“功能”(nestjs)构建项目和路线的建议
问题描述
我大部分都是结构化项目类型,因为我的所有控制器/路由/服务/模型都有一个单独的文件夹。我正在转向结构化基础完成功能/模块的项目。实际上,更具体地说,这是一个 Nestjs 应用程序,它迫使您进入一个面向功能的应用程序。我在找出构建我的爱好项目的最佳方法时遇到了一些麻烦,我希望看看你们是否有任何建议。还有一些关于为每个功能设置路线的最佳方法的问题
我正在尝试构建具有以下功能的社交媒体类型应用程序:
- 帖子
- 喜欢/投票 - 尚未决定用户是否会“喜欢”帖子或对帖子投票
- 实时聊天(具有数据持久性)
- 个人资料 - 个人资料图片、兴趣等内容
- 评论/回复
- 身份验证 最简单的解决方案是将这些功能中的每一个分解到自己的文件夹中,每个功能都有自己的路由/控制器/服务/模型吗?如下所示:
src/
├─ auth/
│ ├─ controller
│ ├─ service
├─ chat/
│ ├─ controller
│ ├─ service
├─ comments/
│ ├─ controller
│ ├─ service
├─ likes/
│ ├─ controller
│ ├─ service
├─ posts/
│ ├─ controller
│ ├─ service
├─ profile/
│ ├─ controller
│ ├─ service
另外,处理每个功能的路线的最佳方法是什么?每个功能都应该有自己的端点吗?
/post
/like
/comment
/profile
/chat
或者对于“喜欢”和“评论”功能,路由应该是 /posts 路由的一部分,如下所示:
/post/:id/comment
/post/:id/like
还有关于设置路由的最佳实践以及何时最好设置新端点/feature
以及何时将路由附加到现有功能(例如)的最佳实践的任何资源/other-feature/:id/new-feature
?
解决方案
推荐阅读
- html - 我有一个引导导航栏,它不会与按钮和搜索框保持一致 - 我如何使其保持一致?
- javascript - PM2 - 如何从日志文件名中删除标识符
- python - pandas groupby中非空值的移位和滚动平均值
- openfire - 多用户聊天 OMEMO 加密消息和 MAM (XEP-0313)
- reactjs - 使用 ref 反应热重载问题
- python - 如何修复“RuntimeWarning:模块'tensorflow.python.framework.fast_tensor_util'的编译时版本3.6与运行时版本3.7不匹配”?
- javascript - 将值添加到具有基于数组的键深度的对象
- javascript - 选择/复制显示的文本内容 webview javafx
- elasticsearch - 在elasticsearch文档中有多级字段好吗?
- yii - 包括(Mongo.php):无法打开流:没有这样的文件或目录