Здравствуйте, только начал изучать node (express) и решил запустить mongoDB в Docker
Пытаясь работать через API мне выдает ошибку:
{
"message": {
"ok": 0,
"code": 13,
"codeName": "Unauthorized"
}
}
Почему я решил, что ошибка из-за подключения к бд -- если убрать всю работу с бд и отдавать на запрос просто JSON, то все работает прекрасно. Уверен, что ошибка мега глупая, но я очень прошу помочь.
Собственно говоря, мой docker-compose.yml, взятый с докер хаба, только дописал порты:
version: '3.1'
services:
mongo:
image: mongo
restart: always
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
запускаю с помощью команды:
docker-compose up --build --force-recreate --renew-anon-volumes
Файл index.js (важная для него часть):
import express from 'express'
import mongoose from 'mongoose'
import dotenv from 'dotenv'
import cors from 'cors'
import authRoute from './routes/auth.js'
const app = express()
dotenv.config()
// Constants
const PORT = process.env.PORT || 3002
const DB_NAME = process.env.DB_NAME
// Middleware
app.use(cors())
app.use(express.json())
// Routes
app.use('/api/auth', authRoute)
async function start() {
try {
await mongoose.connect(`mongodb://localhost:27017/${DB_NAME}`)
app.listen(PORT, () => console.log(`Server started on port: ${PORT}`))
} catch (error) {
console.log(error)
}
}
start()