小编dif*_*use的帖子

如何在 Nestjs 中创建 mongodb 连接提供程序

我正在尝试在 Nestjs 中为 MongoDB 创建一个数据库连接提供程序。

user.controller.ts通过放置断点检查了mongoDbProvider 并发现控制器在建立数据库连接之前获取。如何在控制器初始化之前建立数据库连接?

Nest.js 文档说 useFactory 方法将在依赖它的任何其他模块之前运行。

src/mongo-db/mongodb.provider.ts

import { MongoClient } from "mongodb";
import { MONGODB_PROVIDER } from "../constants";

export const mongoDbProviders = [
  {
    provide: MONGODB_PROVIDER,
    useFactory: async () => {
      MongoClient.connect('mongodb://localhost:27017',
        { useUnifiedTopology: true },
        (error, client) => {
          return client.db('nestjs-sample');
        });
    }
  },

];
Run Code Online (Sandbox Code Playgroud)

src/mongo-db/mongo-db.module.ts

import { mongoDbProviders } from './mongo-db.providers';

@Module({
  providers: [...mongoDbProviders],
  exports: [...mongoDbProviders],
})
export class MongoDbModule {

}
Run Code Online (Sandbox Code Playgroud)

src/constants.ts

export const MONGODB_PROVIDER = 'MONGODB_CONNECTION';
Run Code Online (Sandbox Code Playgroud)

我导入MongoDbModule …

mongodb node.js typescript nestjs

5
推荐指数
1
解决办法
4748
查看次数

标签 统计

mongodb ×1

nestjs ×1

node.js ×1

typescript ×1