Я пытаюсь настроить сервер mongodb через докер и подключиться к нему через api express.js, используя mongoose. Однако api не подключается, а браузер подключается.
Я уже пытался изменить настройки, перезапустить докер, переустановить node_modules.
Также я попробовал различные строки подключения:
mongodb://localhost:8081/db/movies
mongodb://localhost:8081/
mongodb://localhost:8081/movies
Мой docker-compose:
version: '3.1'
services:
mongo:
container_name: mongo
image: mongo
ports:
- 8082:8082
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
mongo-express:
container_name: mongo-express
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
Фрагмент ядра, отвечающий за подключение к базе данных:
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const cors = require('cors');
const port = process.env.PORT || 3001;
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:8081/db/movies', { useNewUrlParser: true }).then(() => {
console.log("Connected to Database");
}).catch((err) => {
console.log("Not Connected to Database ERROR! ", err);
});
Лунная версия - 5.4.21.
Ожидается соединение с базой данных, но фактический результат:
Not Connected to Database ERROR! { MongoNetworkError: connection 0 to localhost:8081 closed
at Socket.<anonymous> (C:\Users\...\moviesapi\node_modules\mongodb-core\lib\connection\connection.js:276:9)
at Object.onceWrapper (events.js:315:30)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at TCP._handle.close [as _onclose] (net.js:567:12)
name: 'MongoNetworkError',
errorLabels: [ 'TransientTransactionError' ],
[Symbol(mongoErrorContextSymbol)]: {} }