認証エラーが出た
5系から6系に上げたら、MongoDB に接続できなかったので、ドキュメントを見てやってみたが、 AuthenticationFailed
と出て接続できなかった。
解決策
?authSource=admin
を付ける。
const mongoUrl = `mongodb://${user}:${password}@${host}:${port}/${dbname}?authSource=admin`;
mongoose.connect(mongoUrl);
猫がなくコード一式
docker-compose.yml
version: "3.1"
services:
mongo:
container_name: mongo-dev
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASS}
MONGO_INITDB_DATABASE: ${MONGO_DBNAME}
ports:
- 27017:27017
volumes:
- ./configdb:/data/configdb
- mongoStore:/data/db
volumes:
mongoStore:
driver: local
app.js
const mongoose = require('mongoose');
require('dotenv').config();
const mongoUrl = `mongodb://${process.env.MONGO_USER}:${process.env.MONGO_PASS}@localhost:27017/${process.env.MONGO_DBNAME}?authSource=admin`;
mongoose.connect(mongoUrl);
const Cat = mongoose.model('Cat', { name: String });
const kitty = new Cat({ name: 'Zildjian' });
kitty.save().then(() => console.log('meow'));
".env"
MONGO_USER=xxx
MONGO_PASS=xxx
MONGO_DBNAME=xxx
$ npm init
$ yarn install mongoose dotenv
$ node app.js
meow