如何使用打字稿和猫鼬?

时间:2019-12-27 15:00:50

标签: node.js mongodb typescript express mongoose

我已经在一个应用程序上工作了几个月,而且我开始怀疑我当前的后端体系结构。我正在使用Typescript,猫鼬和routing-controllers构建后端。

我有一个控制器来处理请求并将其传递到存储库。我有两种类型的存储库。普通存储库(控制器与之交互)和模型存储库(与猫鼬模型交互)。

我还为猫鼬模型定义了一些接口。假设我有一个用户:

export interface User {
    firstName: string;
    lastName: string;
}

export interface UserModel extends User, Document {
}

创建模型后,它将使用UserModel。

现在我的问题是:

1)这是使用nodejs的正确方法吗?

2)在向模型存储库发出请求时,应该返回User接口还是UserModel接口?

目前我是这样使用的

public async getUserById(userId: string): Promise<UserModel> {
    return this.userModel.findById(userId);
}

然后普通存储库返回User接口的对象。

0 个答案:

没有答案