引言
Nest.js作为一个进阶的Node.js框架,其模块化设计和强类型支持为开发者提供了极大的便利。MongoDB是一种高性能、可扩展的NoSQL数据库。本篇博客将详细介绍如何在Nest.js项目中集成MongoDB,涵盖从安装到定义Schema的完整过程。
文档资料
- 官方参考文档:Nest.js MongoDB 集成
- 安装相关依赖:
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的结合,你可以实现一个高效、可扩展的数据处理系统。