MongoDB Docker URI 没有主机名、域名和 tld

Dev*_*xon 1 mongodb node.js

我正在尝试使用 Node.js 连接到 docker 上的本地 MongoDB 数据库。我的组件是:

.env 文件

MONGODB_USERNAME = 'accountUser'
MONGODB_PASSWORD = 'password'
MONGODB_HOST = 'mongodb'
MONGODB_DATABASE = 'mydb'
Run Code Online (Sandbox Code Playgroud)

代码:

const uri = `mongodb+srv://${process.env.MONGODB_USERNAME}:${process.env.MONGODB_PASSWORD}@${process.env.MONGODB_HOST}/${process.env.MONGODB_DATABASE}?retryWrites=true&w=majority`;

    console.log(uri);

    const client = new MongoClient(uri);
Run Code Online (Sandbox Code Playgroud)

控制台输出

mongodb+srv://accountUser:abc123@mongodb/mydb?retryWrites=true&w=majority
Run Code Online (Sandbox Code Playgroud)

错误

MongoParseError: URI does not have hostname, domain name and tld
Run Code Online (Sandbox Code Playgroud)

我可能做错了什么?

D. *_* SM 8

当您应该使用普通 URI 时,您却试图使用 SRV URI。

SRV URI 对主机名有额外的安全要求(至少包含 3 个组件)。

+srv从您的 URI 中删除。