Я попытался подключить приложение mongodb и серверный сервер узлов (URL запроса https://services.suriyashopping.com/api/menu-list) в одной и той же капле. Серверное приложение nodejs и сервер mongodb, работающие в одной капле и сервере, размещенном в поддомене. Я упомянул мой код подключения к БД ниже, и я получил успешное завершение при запуске сервера "nodemon app.js". Но после этого я сделал запрос от клиента к серверу, затем я получил некоторую несанкционированную ошибку. Еще один вопрос, почему DB и связанные коллекции не генерируются автоматически во время выполнения сервер через терминал Ubuntu "nodemon app.js". Я использую серверный блок nginix для указания субдомена. Если я запускаю сервер на моей локальной машине, будет сгенерирована БД и соответствующая коллекция. Но здесь она не генерируется.
NodeJs, Express, mongodb, mongoose, linux 16.04, nginix для серверного блока для указания субдомена
Код подключения MongoDB
Я пытался использовать IP-адрес капли как локальный IP-адрес "127.0.0.1", а также свой капель "142.93.215.18"
mongoose.connect('mongodb://dbuser:dbpassword@dropletip:27017/SURIYAShoppingDB',
{ useNewUrlParser: true }, (err, res) => {
if(err) {
console.log(err);
}
else {
console.log('MongoDB connection succeeded.');
}
})
Ожидаемый результат
Я попробовал этот URL-адрес запроса, чтобы получить ответ (если есть)
https://services.suriyashopping.com/api/menu-list
Фактический результат
{ MongoError: not authorized on SURIYAShoppingDB to execute command { find: "maincategories", filter: { status: "true", active_status: "true" }, projection: { __v: false, catgoryImage: false, active_status: false, status: false, createdAt: false, updatedAt: false }, returnKey: false, showRecordId: false }
at Connection.<anonymous> (/var/www/services.suriyashopping.com/html/node_modules/mongodb-core/lib/connection/pool.js:443:61)
at Connection.emit (events.js:198:13)
at processMessage (/var/www/services.suriyashopping.com/html/node_modules/mongodb-core/lib/connection/connection.js:364:10)
at Socket.<anonymous> (/var/www/services.suriyashopping.com/html/node_modules/mongodb-core/lib/connection/connection.js:533:15)
at Socket.emit (events.js:198:13)
at addChunk (_stream_readable.js:288:12)
at readableAddChunk (_stream_readable.js:269:11)
at Socket.Readable.push (_stream_readable.js:224:10)
at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
ok: 0,
errmsg:
'not authorized on SURIYAShoppingDB to execute command { find: "maincategories", filter: { status: "true", active_status: "true" }, projection: { __v: false, catgoryImage: false, active_status: false, status: false, createdAt: false, updatedAt: false }, returnKey: false, showRecordId: false }',
code: 13,
name: 'MongoError',
[Symbol(mongoErrorContextSymbol)]: {} }
(node:28975) DeprecationWarning: collection.count is deprecated, and will be removed in a future version. Use collection.countDocuments or collection.estimatedDocumentCount instead
Мой статус UFW
mydroplet:~$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
27017 ALLOW 142.93.215.18
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)