小编Mar*_*cin的帖子

Typescript API 存储库和工作单元实现(领域驱动设计)

我正在尝试在现有项目中使用Sequelize和 Typescript 来实现存储库工作单元模式,遵循域驱动设计。然而,由于互联网上缺乏相关示例,我遇到了一些困难。

让我们考虑以下代码示例。

interface IPostRepo {
    save(post: Post): Promise<void>;
}

interface ICommentRepo {
    save(comment: Comment): Promise<void>;
    saveBulk(comments: Comment[]): Promise<void>;
}

class SequelizePostRepo implements IPostRepo {
    private models: any;
    private commentRepo: ICommentRepo;

    constructor(models: any, commentRepo: ICommentRepo) {
        this.models = models;
        this.commentRepo = commentRepo;
    }

    public async save(post: Post): Promise<void> {
        const PostModel = this.models.Post;
        const rawSequelizePost = await PostMap.toPersistence(post);

        await PostModel.create(rawSequelizePost);
        await this.commentRepo.saveBulk(comments);
    }
}

class SequelizeCommentRepo implements ICommentRepo {
    private models: any;

    constructor(models: …
Run Code Online (Sandbox Code Playgroud)

domain-driven-design unit-of-work repository-pattern sequelize.js typescript

5
推荐指数
0
解决办法
2715
查看次数

顺序选择仅选择的属性

我在执行以下操作时正在使用MySQL数据库:

models.modelA.findAll({
            attributes: [
               ['modelA.id','id']
            ],
            raw: true,
            include:
                [
                    {
                        model: models.modelB,
                        required: true
                    }
                ]

        }).then(function (tenants) {

        });
Run Code Online (Sandbox Code Playgroud)

尽管如此,我仅选择id,Sequelize也在从相关表中检索所有属性,所以我得到了{ id,...这里的所有属性}。

我该如何预防?有时我只想选择2/3列,而Sequelize总是选择所有这些列,但效率不高。

mysql select model express sequelize.js

3
推荐指数
1
解决办法
3714
查看次数

Express.js 和 MySQL 模型 + 验证

我正在使用 Node.js 和 Express 框架开发应用程序。我发现了很多使用 MongoDB 建模数据的例子,但我的项目需要 SQL 数据库。

有人可以简单解释一下,基于MySQL制作模型的最佳方法是什么?

我也想知道如何提供这些模型的后期验证。也许我应该在每个属性中定义验证属性?

mysql validation model node.js express

2
推荐指数
1
解决办法
3245
查看次数

领域驱动设计共享实体

我刚刚开始我的领域驱动设计职业之旅。我的课程模型有问题。下面是一个简化的类图。

在此输入图像描述

我有两个有界上下文:PopulationIssues

Person是用至少一个文档创建的。Person可以报​​告新的Issue附加多个IssueAttachment

我想将文件存储集中为单个File实体,并将其保留在单个数据库表中。中心化的原因是在持久化之前执行常见操作,例如数据压缩或获取 md5 哈希。此外,将所有文件存储在单个表中还简化了测试数据转储过程,因为我必须忽略单个表来排除大量 blob。

然而,在阅读了很多文章之后,我可以得出结论,不建议在不同上下文之间共享实体。

您能给我一些关于如何处理此类问题的设计建议吗?

architecture entity-relationship domain-driven-design bounded-contexts

2
推荐指数
1
解决办法
2685
查看次数