热门
join now

零基础入门NestJS(五) 使用数据存储库

编程相关4个月前更新 云程
181 0 0

在实际应用程序中,通常需要使用数据存储库来持久化数据。Nest.js 支持多种数据存储库,例如 MongoDB、MySQL、PostgreSQL 等等。可以使用相应的 Nest.js 模块来连接和操作数据存储库。以 MongoDB 为例,可以使用 `@nestjs/mongoose` 模块来连接和操作 MongoDB 数据库。

首先,需要安装 `@nestjs/mongoose` 模块和 `mongoose` 模块:

“`
npm install –save @nestjs/mongoose mongoose
“`

然后,在模块中引入 `@nestjs/mongoose` 模块并配置连接信息。例如:

“`typescript
import { Module } from ‘@nestjs/common’;
import { MongooseModule } from ‘@nestjs/mongoose’;
import { CatsController } from ‘./cats.controller’;
import { CatsService } from ‘./cats.service’;
import { CatSchema } from ‘./schemas/cat.schema’;

@Module({
imports: [
MongooseModule.forRoot(‘mongodb://localhost:27017/cats’),
MongooseModule.forFeature([{ name: ‘Cat’, schema: CatSchema }]),
],
controllers: [CatsController],
providers: [CatsService],
})
export class AppModule {}
“`

上面的代码中,`MongooseModule.forRoot()` 方法配置了 MongoDB 数据库的连接信息,`MongooseModule.forFeature()` 方法引入了 `CatSchema`,使用了 `Cat` 模型的名称。

接下来,在服务中使用 `Cat` 模型来操作 MongoDB 数据库。例如,要在 `cats` 服务中实现一个 `create()` 方法来创建一只新猫,可以添加以下代码:

“`typescript
import { Injectable } from ‘@nestjs/common’;
import { InjectModel } from ‘@nestjs/mongoose’;
import { Model } from ‘mongoose’;
import { Cat } from ‘./interfaces/cat.interface’;

@Injectable()
export class CatsService {
constructor(@InjectModel(‘Cat’) private readonly catModel: Model) {}

async create(cat: Cat): Promise {
const createdCat = new this.catModel(cat);
return createdCat.save();
}

async findAll(): Promise {
return this.catModel.find().exec();
}
}
“`

上面的代码中,`@InjectModel(‘Cat’)` 装饰器将 `catModel` 注入了 `Cat` 模型,`create()` 方法使用 `catModel` 创建了一只新猫并将其保存到 MongoDB 数据库中,`findAll()` 方法使用 `catModel` 查询了所有猫的信息。

以上是使用 Nest.js 连接和操作 MongoDB 数据库的基本步骤。在实际开发中,还可以使用 Nest.js 提供的其他功能来进一步优化 MongoDB 数据库的操作体验和性能表现。

零基础入门NestJS(五) 使用数据存储库

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...