在Nest.js项目中集成MongoDB:从安装到Schema定义

335 阅读1分钟

引言

Nest.js作为一个进阶的Node.js框架,其模块化设计和强类型支持为开发者提供了极大的便利。MongoDB是一种高性能、可扩展的NoSQL数据库。本篇博客将详细介绍如何在Nest.js项目中集成MongoDB,涵盖从安装到定义Schema的完整过程。

文档资料

npm i @nestjs/mongoose mongoose

修改app.module.ts

app.module.ts文件中,引入Mongoose模块并配置MongoDB的连接:

import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { AppController } from './app.controller';
import { UserController } from './user.controller';
import { AppService } from './app.service';
import { VideoModule } from './video/video.module';
import { UsersModule } from './users/users.module';

// Nest 中的模块装饰器
@Module({
  // 引入子模块
  imports: [
    VideoModule,
    UsersModule,
    MongooseModule.forRoot('mongodb://localhost:27017/express-video'), // 配置 MongoDB 连接
  ],
  controllers: [UserController, AppController],
  providers: [AppService],
})
export class AppModule {}

创建Schema

接下来,在users目录下创建schemas文件夹,并定义user.schema.ts

import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';

// 定义 UsersDocument 类型
export type UsersDocument = Users & Document;

@Schema()
export class Users extends Document {
  @Prop({ required: true })
  username: string;

  @Prop({ required: true })
  email: string;

  @Prop({ required: true, select: false })
  password: string;
}

// 创建 UsersSchema
export const UsersSchema = SchemaFactory.createForClass(Users);

总结

通过上述步骤,你已经成功在Nest.js项目中集成了MongoDB,并定义了用户的Schema。在下一节中,我们将探讨如何在Service层中使用定义好的Schema进行数据操作。通过Nest.js和MongoDB的结合,你可以实现一个高效、可扩展的数据处理系统。