最近我开始在后端工作(对于我的个人项目),我选择了nestjs,对于ORM,我选择了typeorm。
现在我需要自定义存储库,这样我就可以拥有一个抽象的基本存储库,它实现所有需要的方法,然后在实际的实体存储库中继承这些方法。那么,我如何构建我的项目呢?我应该创建一个导出所有存储库的模块,还是有其他有效的方法?
我最近刚刚开始使用NestJS,但这就是我构建项目的方式,到目前为止,我的工作相当不错。每个endpoint都有自己的模块,每个模块都包含与该endpoint相关的所有内容。例如,帐户endpoint。我会有一个账户模块,其中包含与账户相关的所有内容(实体、服务、控制器、DTO等)。
对于跨多个模块使用的任何共享项,我创建了一个公共模块。在公共模块中,我将保留所有共享接口、基本实体、基本存储库和共享服务。
所以我的文件结构看起来像这样。。。
|-- accounts
| |-- controllers
| | |-- accounts.controller.ts
| | |-- profiles.controller.ts
| |-- entities
| | |-- account.entity.ts
| | |-- profile.entity.ts
| |-- repositories
| | |-- accounts.repository.ts
| | |-- profiles.repository.ts
| |-- services
| | |-- accounts.service.ts
| | |-- profiles.service.ts
| `-- accounts.module.ts
|-- common
| |-- entities
| | |-- base.entity.ts
| |-- repositories
| | |-- base.repository.ts
| | |-- repository.interface.ts
| |-- services
| | |-- some-shared-service.service.ts
| | |-- another-shared-service.service.ts
| `-- common.module.ts
|-- products
| |-- controllers
| | |-- products.controller.ts
| |-- entities
| | |-- product.entity.ts
| |-- repositories
| | |-- products.repository.ts
| |-- services
| | |-- products.service.ts
| `-- users.module.ts
模块内的子目录(实体、存储库、服务等)可能过于繁杂且不必要,因此您可以将结构扁平化,但其想法是在名为common
的模块中保持跨多个模块共享公共文件。需要公共文件/服务的每个模块都可以导入公共模块。
问题内容: 在MySQL数据库中存储IP地址的最佳字段类型和长度是什么? IPv6呢? 问题答案: 将IP存储为,然后使用和功能存储/检索IP地址。 样例代码:
问题内容: 我目前正在使用以下设置在嵌入式数据库上运行测试之前在嵌入式数据库中创建架构 在我的应用程序上下文中 createSchema.sql hibernate属性 我的问题是这是最好的方法。或者我可以在属性中使用其他架构名称吗?或在jdbc:embedded-database元素中设置架构名称 问题答案: 默认情况下,HSQL创建一个称为PUBLIC的架构。来源:HSQL文档 看到模式名称在
问题内容: 我是NHibernate(和ORMS)的新手,并试图掌握它提供的各种选择。作为参考,我将Fluent NHibernate与单独的业务对象配合使用,而后者又将DTO纯粹用于数据访问。我的应用程序体系结构必须同时支持Windows和Web“前端”。 我的选择是一般方法之一,因为似乎有很多选择。我的DTO看起来像下面的示例。每个DTO都有对ISession的引用,该引用从BO传递给它们。他
我想创建一对多的映射,就像Post有很多评论一样。我有两种添加评论的解决方案。第一种解决方案是为评论创建一个存储库,第二种解决方案是使用PostRepository并获取post并将评论添加到帖子中。每个解决方案都有自己的挑战。 在第一种解决方案中,为每个实体创建存储库会过多地增加存储库的数量,并且基于DDD,应该为Aggregate Roots创建存储库。 在第二个解决方案中,存在性能问题。若要
问题内容: 我需要将JSON对象放入HTML元素的属性中。 HTML不必验证。 昆汀回答: 将JSON存储在有效HTML5 的attribute中。 JSON对象可以是任何大小-即巨大 如果JSON包含特殊字符怎么办? 例如 昆汀回答:按照常规惯例,将JSON字符串放入属性之前,先对其进行编码。 对于PHP,请使用 函数。 编辑-使用PHP和jQuery的示例解决方案 将JSON写入HTML属性:
问题内容: 我正在使用Redis来存储一些信息并检测该信息随时间的变化(例如,考虑用户和位置)。使用更长或更短的键名的值是什么?使用更长的键会更清楚,但是使用更长的键名是否会在内存或性能上付出很多成本? 以下是示例: 要么 问题答案: 这完全取决于您将如何使用它。如果每个字节都很重要,例如,当您必须为传输到云服务的每个kB支付费用时,您可以计算成本。数学很简单;一个字节是“在线”上的一个字节。在r