Я следовал руководству по началу работы с 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
});
Все выглядит нормальноменя, включите в реакцию (я полагаю, это не имеет никакого значения), и запустите приложение. Парсер url сталкивается с ошибкой:
"Unhandled Rejection (TypeError): Cannot read property 'replace' of undefined"
, которая находит строку srv в этой функции в исходном файле mongodb url_parser:
function matchesParentDomain(srvAddress, parentDomain) {
const regex = /^.*?\./;
>>> error here >>> const srv = ".".concat(srvAddress.replace(regex, ''));
const parent = ".".concat(parentDomain.replace(regex, ''));
return srv.endsWith(parent);
}
Я полагаю, либоЯ сделал какую-то ужасную ошибку noob или что-то не так с парсером url?
Мои имя пользователя и пароль не содержат специальных символов, только обычные буквенно-цифровые символы. Я также пытался установить имя пользователя / пароль в опциях:
userNewUrlParser: true,
auth: {
user: 'myusername',
password: 'mypassword'
}
та же ошибка: (
Моя mongodb
версия 3.3.2
, которая выглядит как последняяверсия на сегодняшний день.
Любая помощь очень ценится!