You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决NestJS+TypeORM+MongoDB出现的writeConcern相关连接警告

问题解决方案

根因说明

该警告是MongoDB驱动对弃用写法的提示:旧版本中w、wtimeout、j、fsync这类写安全参数可单独顶层配置,新版本要求统一放入writeConcern对象中传递。即使降级MongoDB服务端版本,只要TypeORM底层调用的MongoDB驱动版本匹配了该弃用规则,且配置写法不符合要求,仍然会触发警告。

修复步骤

  • 第一步:修改app.module.ts中的TypeORM配置,新增writeConcern配置项,把所有写安全相关参数统一放入该对象中,示例修改后的配置如下:
/// app.module.ts setting
@Module({
    imports: [
        TypeOrmModule.forRoot({
            type: "mongodb",
            url: "-----",
            port: 27017,
            database: "-----",
            useNewUrlParser: true,
            useUnifiedTopology: true,
            entities: [Users],
            // 新增writeConcern配置,参数可根据业务实际要求调整
            writeConcern: {
                w: 1,
                wtimeoutMS: 2000,
                j: false
            }
        }),
        UserModule,
        AuthModule
    ]
})
export class AppModule {}
  • 第二步:检查MongoDB连接URL是否携带单独的写安全参数,如果URL里有?w=1&wtimeout=2000这类后缀,直接删除,所有参数统一走上述writeConcern配置即可。
  • 第三步:如果修改配置后警告仍存在,检查依赖版本是否匹配:
    • 锁定MongoDB Node驱动版本到3.6.x稳定版,执行npm i mongodb@3.6.x --save安装即可
    • TypeORM版本建议使用0.2.45等0.2分支稳定版,0.3及以上版本对MongoDB的兼容性问题更多

内容的提问来源于stack exchange,提问作者momo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 13:54:08