我遵循了MongoDB的入门指南,并从Node.js驱动程序版本3+的“群集”页面获取了连接字符串和代码,如下所示:
import { MongoClient } from 'mongodb';
const uri = "mongodb+srv://myname:mypassword@somecluster.mongodb.net/admin?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
if (err) {
console.error(err);
return;
}
// do something
});
对我来说一切都很好,做出反应(我想这没什么关系),然后运行该应用程序。网址解析器遇到错误:
"Unhandled Rejection (TypeError): Cannot read property 'replace' of undefined"
位于mongodb源文件url_parser中此函数中srv行的位置:
function matchesParentDomain(srvAddress, parentDomain) {
const regex = /^.*?\./;
>>> error here >>> const srv = ".".concat(srvAddress.replace(regex, ''));
const parent = ".".concat(parentDomain.replace(regex, ''));
return srv.endsWith(parent);
}
我想我是犯了一个可怕的菜鸟错误,还是网址解析器出了点问题?
我的用户名和密码不包含特殊字符,只是普通的字母数字字符。我还尝试在选项中设置用户名/密码:
userNewUrlParser: true,
auth: {
user: 'myusername',
password: 'mypassword'
}
相同错误:(
我的mongodb
版本是3.3.2
,看起来它是今天的最新版本。
非常感谢您的帮助!