通常,连接 MongoDB 需要使用 MongoDB 客户端。在 NestJS 中,可以使用 @nestjs/mongoose
模块来连接 MongoDB。要将本地 MongoDB 实例连接到 NestJS app.module,需要按照以下步骤操作:
@nestjs/mongoose
模块:npm install --save @nestjs/mongoose
MongooseModule
:在 app.module.ts 文件中,导入 MongooseModule
:
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
@Module({
imports: [
MongooseModule.forRoot('mongodb://localhost/nest'),
],
})
export class AppModule {}
这会将 MongooseModule
添加到 NestJS 应用程序中,并在 app.module.ts
文件中导入。
在 MongooseModule.forRoot()
方法中,需要提供 MongoDB 连接字符串。在本例中,连接字符串为 mongodb://localhost/nest
。这将连接到本地 MongoDB 实例中名为 “nest” 的数据库。
现在,可以使用 @nestjs/mongoose
模块中提供的 Mongoose 模型,与 MongoDB 进行交互。例如,在 users.service.ts 文件中:
import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model } from 'mongoose';
import { User } from './user.schema';
@Injectable()
export class UsersService {
constructor(@InjectModel(User.name) private userModel: Model) {}
async findAll(): Promise {
return this.userModel.find().exec();
}
}
在上面的示例中,@nestjs/mongoose
模块中的 InjectModel
装饰器用于注入 User
模型。这里的 User
是一个 Mongoose 模型定义,定义了用户模型的结构和方法。通过注入 User
模型,可以轻松地与 MongoDB 进行交互。
现在,可以运行 NestJS 应用程序并连接到本地 MongoDB 实例。为此,只需使用以下命令运行应用程序:
npm run start
如果一切正常,应该会在控制台输出 “Nest application successfully started” 消息。
通过按