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

使用TypeORM连接MongoDB Atlas时出现'Unescaped slash'错误求助

解决TypeORM连接MongoDB Atlas时的'Unescaped slash in userinfo section'错误

你遇到的问题根源在于TypeORM的MongoDB配置格式错误:你把完整的MongoDB连接字符串放在了host字段中,而TypeORM对MongoDB的配置要求是,要么用url字段传入完整连接串,要么拆分配置(单独指定username、password、host等字段)。

当你把包含mongodb+srv://username:password@...的完整串放在host里时,TypeORM会错误地解析这部分内容,把username:password@后的部分当作主机地址,进而触发MongoDB驱动的解析错误——认为用户信息段里有未转义的斜杠。

修复方案

修改你的AppDataSource配置,将host字段替换为url字段:

import { DataSource } from "typeorm" 

export const AppDataSource = new DataSource({
    type: "mongodb",
    // 用url字段传入完整连接字符串
    url: "mongodb+srv://username:password@database.cluster.mongodb.net/?retryWrites=true&w=majority",
    useNewUrlParser: true,
    synchronize: true,
    useUnifiedTopology: true,
    logging: true,
    ssl: true,
    entities: [
        "src/entity/*.ts"
    ],
    subscribers: [],
    migrations: [],
})

或者也可以拆分配置项(适合需要动态修改参数的场景):

import { DataSource } from "typeorm" 

export const AppDataSource = new DataSource({
    type: "mongodb",
    username: "your-username",
    password: "your-password",
    host: "database.cluster.mongodb.net",
    database: "your-db-name", // 可选,指定默认数据库
    useNewUrlParser: true,
    synchronize: true,
    useUnifiedTopology: true,
    logging: true,
    ssl: true,
    entities: [
        "src/entity/*.ts"
    ],
    subscribers: [],
    migrations: [],
})

验证修复

修改配置后重新启动Express项目,连接MongoDB Atlas的错误应该会消失。如果仍然有问题,确认你的连接字符串是从MongoDB Atlas控制台复制的最新版本,确保用户名和密码没有拼写错误。

内容的提问来源于stack exchange,提问作者João Pedro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:50:33