У меня есть приложение на Node.js. Он отлично работает локально, но когда я пытаюсь развернуть его в docker контейнере, появляется эта ошибка:
MongoTimeoutError: Server selection timed out after 30000 ms
at Timeout._onTimeout (/cme_api/src/app/node_modules/mongodb/lib/core/sdam/server_selection.js:309:9)
at listOnTimeout (internal/timers.js:536:17)
at processTimers (internal/timers.js:480:7) {
name: 'MongoTimeoutError',
reason: Error: connect ECONNREFUSED 127.0.0.1:27017
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1136:16) {
name: 'MongoNetworkError',
[Symbol(mongoErrorContextSymbol)]: {}
},
[Symbol(mongoErrorContextSymbol)]: {}
}
[nodemon] app crashed - waiting for file changes before starting...
Я не очень знаком с этими технологиями и не понимаю, что происходит ,
Вот моя база данных. js:
const mongo = require('mongodb').MongoClient;
require('dotenv').config()
class Database {
constructor() {
this.client = null;
}
connect() {
mongo.connect(process.env.URL_DATABASE, { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) => {
if (err) throw err
this.client = client;
});
}
}
const db = new Database();
db.connect();
module.exports = db;
И мое приложение. js:
const express = require('express'),
app = express();
os = require('os');
const bodyParser = require('body-parser');
const cors = require('cors');
const router = require('./router.js')
require('dotenv').config()
app.use(cors());
app.use(bodyParser.json());
app.use('/api/v1', router);
const port = (process.env.PORT || '3001');
let server = app.listen(port, os.hostname(), () => {
let host = server.address().address,
port = server.address().port;
console.log("Example app listening at http://%s:%s", host, port);
});
Если кто-нибудь может помочь мне с этим, спасибо