连接MongoDB和NestJS可以通过以下步骤完成:
@nestjs/mongoose
包。npm install --save @nestjs/mongoose mongoose
app.module.ts
文件,并添加以下代码来配置MongoDB连接。import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
@Module({
imports: [
MongooseModule.forRoot('mongodb://localhost:27017/mydatabase'),
],
})
export class AppModule {}
在上述代码中,mongodb://localhost:27017/mydatabase
是MongoDB数据库的连接字符串,可以根据实际情况进行修改。
cat.model.ts
的文件,并添加以下代码来定义一个示例模型。import { Schema, Prop, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';
@Schema()
export class Cat extends Document {
@Prop()
name: string;
@Prop()
age: number;
}
export const CatSchema = SchemaFactory.createForClass(Cat);
cats.service.ts
的文件,并添加以下代码来定义一个示例服务。import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model } from 'mongoose';
import { Cat } from './cat.model';
@Injectable()
export class CatsService {
constructor(@InjectModel(Cat.name) private catModel: Model<Cat>) {}
async create(cat: Cat): Promise<Cat> {
const createdCat = new this.catModel(cat);
return createdCat.save();
}
async findAll(): Promise<Cat[]> {
return this.catModel.find().exec();
}
}
app.controller.ts
文件,并添加以下代码来使用上述服务。import { Controller, Get, Post, Body } from '@nestjs/common';
import { CatsService } from './cats.service';
import { Cat } from './cat.model';
@Controller('cats')
export class CatsController {
constructor(private readonly catsService: CatsService) {}
@Post()
async create(@Body() cat: Cat) {
return this.catsService.create(cat);
}
@Get()
async findAll() {
return this.catsService.findAll();
}
}
npm run start
现在,你可以使用NestJS提供的路由来创建和获取MongoDB中的数据。例如,发送POST请求到/cats
来创建一个新的猫,发送GET请求到/cats
来获取所有猫的列表。
这是一个基本的连接MongoDB和NestJS的示例。根据实际需求,你可以进一步扩展和优化代码。
领取专属 10元无门槛券
手把手带您无忧上云