Я устанавливаю сервер на Digitalocean и у меня проблема с MongoDB.Я установил Mongo на сервер и разрешил удаленный доступ.
Я создал двух пользователей.Один для меня супер-пользователь, а другой обычный пользователь для пользователей сайта. Я могу подключиться к Монго через Robomongo 3T (клиент Монго) удаленно для обоих пользователей .
Однако, когда я использую приложение из браузера, простой запрос входа в систему выдает ошибку аутентификации.Вот ошибка:
MongoError: not authorized on DATABASE_NAME to execute command { find: "users", filter: { email: "YYY", password: "XXX" }, limit: 1, singleBatch: true, batchSize: 1 }
Вот действительный код на стороне сервера:
Подключение базы данных на server.js:
MongoClient.connect(config.mongo_url, (err, client) => {
if(err) throw err
console.log('db connected')
app.locals.db = client
// start the server
app.listen(process.env.PORT || 3000, ()=>console.log('listening on port 3000!'))
});
Попытка подключения клокальное монго на сервере:
database.collection(config.mongo_col_user)
.findOne({
email: username,
password: hash
}, (err, user)=>{
if(err) return done(err)
if(!user) return done(null, false, {msg: 'not found'})
if(user.password)
return done(null, user)
})
Я использую pm2 на стороне сервера и использую ecosystem.config.js
, который имеет следующий код:
module.exports = {
apps : [
{
name: "NAME",
script: "SCRIPT_NAME",
watch: true,
env: {
"mongo_url": 'mongodb://USER_NAME:PASSWORD@localhost:27017?authMechanism=SCRAM-SHA-1&authSource=DATABASE_NAME',
"mongo_db_name": 'DATABASE_NAME',
"mongo_col_query": "COLLECTION_NAME",
}
}
]
}
Не могли бы вы помочь с проблемойпожалуйста