nest js 如何连接Mongodb
时间: 2024-05-02 22:20:51 浏览: 153
要连接 MongoDB,您可以使用 Nest.js 的官方 MongoDB 模块 `@nestjs/mongoose`。
1. 安装依赖
```
npm install --save @nestjs/mongoose mongoose
```
2. 配置模块
在应用程序的根模块中配置 `MongooseModule`,并传递 MongoDB 连接字符串。
```typescript
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
@Module({
imports: [
MongooseModule.forRoot('mongodb://localhost/nestjs'),
],
})
export class AppModule {}
```
3. 创建模式
在 `app.module.ts` 同级目录下创建一个 `cats` 目录,并在其中创建一个 `cat.schema.ts` 文件。
```typescript
import * as mongoose from 'mongoose';
export const CatSchema = new mongoose.Schema({
name: String,
age: Number,
breed: String,
});
```
4. 创建模型
在 `cats` 目录中创建一个 `cat.model.ts` 文件,使用 `@nestjs/mongoose` 中的 `@nestjs/mongoose` 装饰器,将模式注入到模型中。
```typescript
import { Document } from 'mongoose';
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
export type CatDocument = Cat & Document;
@Schema()
export class Cat {
@Prop()
name: string;
@Prop()
age: number;
@Prop()
breed: string;
}
export const CatSchema = SchemaFactory.createForClass(Cat);
```
5. 注册模型
在 `app.module.ts` 中导入 `mongoose` 模块,并使用 `MongooseModule.forFeature()` 方法,注册 `Cat` 模型。
```typescript
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
import { Cat, CatSchema } from './cats/cat.model';
@Module({
imports: [
MongooseModule.forRoot('mongodb://localhost/nestjs'),
MongooseModule.forFeature([{ name: Cat.name, schema: CatSchema }]),
],
controllers: [CatsController],
providers: [CatsService],
})
export class AppModule {}
```
现在,您已经成功配置了 Nest.js 应用程序与 MongoDB 的连接。您可以在您的服务或控制器中使用 `Cat` 模型来执行数据库操作。
阅读全文