Как пройти аутентификацию в MongoDB с NodeJS, а также с PM2 для постоянной работы Node - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь подтвердить подлинность моего заявления о соединении с mongoose to mongodb. У меня есть

//In app.js

mongoose.connect('mongodb://localhost:27017/databasenamehere', {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    user: 'username',
    pass: 'password'
});

с файлом /etc/mongo.conf, настроенным как

...
#bindIP //commented this out
...
security:
     authentication: enabled
...

, и я также попытался поместить его в строку .connect как

//In app.js
mongoose.connect('mongodb://username:password@localhost:27017/databasenamehere', {
    useNewUrlParser: true,
    useUnifiedTopology: true
});

Также пробовал по документам:

mongod --auth --port 27017 --dbpath /var/lib/mongodb

//and 

mongod --auth --port 27017 --dbpath /var/lib/mongodb

Документам: https://docs.mongodb.com/manual/tutorial/enable-authentication/

, но это также не работает. Когда я захожу на страницу в моем приложении стека MEAN, которое делает запрос к бэкэнду NodeJS для получения данных из MongoDB в F12 (инструменты разработчика chrome), это показывает, что вызов имеет статус (сбой) и говорит: «Не удалось загрузить данные ответа»,Используемый мной сервер имеет Ubuntu 18.04.

Я ожидаю увидеть, что app.js успешно подключится к mongoDB с пользователем, которого я создал в mongoDB для базы данных, для которой я выбрал этого пользователя. Это значит, что я отключил защиту (закомментированные выше строки), создал пользователя и дал привилегии readWrite созданному пользователю и привязал его к моей нужной БД, а затем снова включил защиту в файле mongo.conf согласно документам.

Кроме того, хотелось бы знать, как использовать PM2 (npm install pm2) и всегда запускать свой внутренний код nodeJS, чтобы Node всегда выполнял мой app.js, чтобы вызовы API были успешными.

1 Ответ

0 голосов
/ 02 октября 2019

Раскомментируйте bindIp и установите его на 127.0.0.1

bindIp = 127.0.0.1

security:
     authentication: enabled

, это решит вашу проблему

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