Подключение к MongoDB через mongoose дает ошибку аутентификации - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь подключиться к моему кластеру Mongo, используя строку подключения, подобную этой:

module.exports = {
  MongoURI: MongoURI: 'mongodb+srv://philip:DummyPassword9$@test-cluster-026fd.mongodb.net/test?retryWrites=true'
}

И установили мою конфигурацию в app.js:

const express = require('express');
const expressLayouts = require('express-ejs-layouts');
const mongoose = require('mongoose');

const app = express();

// DB Config
const db = require('./config/keys').MongoURI;

// Connect to Mongo
mongoose.connect(db, { useNewUrlParser: true })
.then(() => console.log('MongoDB Connected....'))
.catch(err => console.log(err));

//EJS
app.use(expressLayouts);
app.set('view engine', 'ejs');

// Routes
app.use('/', require('./routes/index'));
app.use('/users', require('./routes/users'));

const PORT = process.env.PORT || 5000;

app.listen(PORT, console.log(`Server started on port ${PORT}`));

Но вместо подключения к кластеру Mongo я получаю сообщение об ошибке:

MongoError: authentication fail

Я прочитал все, что смог найти в Интернете, связанное с этой проблемой, я пытался закодировать свой пароль следующим образом:

module.exports = {
  MongoURI: `mongodb+srv://philip:${encodeURIComponent('DummyPassword9')}$@test-cluster-026fd.mongodb.net/test?retryWrites=true`
}

Но все равно я не могу подключиться и получаю эту ошибку. Я уверен, что пароль моей учетной записи правильный, что я делаю не так?

1 Ответ

0 голосов
/ 08 апреля 2019

Вы подключаетесь через URL, поэтому вам нужно изменить пароль на формат кодировки URL.
Заменить "$" на "% 24" и проверить.
Ссылка: HTML URL ENCODINGS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...