MongoDB 在 docker 下开启权限验证并用 mongoose 连接
本人喜欢直接用 docker-compose.yml
来部署 docker 项目,虽然对于集群可能还不够看,但是单机使用已经绰绰有余了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| version: "3"
services: server: build: . restart: always ports: - "8080:8080" environment: NODE_ENV: production MONGO_URL: "mongodb://mongo:27017/" depends_on: - mongo
mongo: image: mongo:4.2.6 restart: always volumes: - mongo-data:/data/db environment: MONGO_INITDB_ROOT_USERNAME: "admin" MONGO_INITDB_ROOT_PASSWORD: "123456" volumes: mongo-data:
|
接下来就到了连接数据库了,这里采用 mongoose
这个库来连接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import mongoose from 'mongoose' const url = process.env.MONGO_URL const db = mongoose.createConnection(url, { auth: { user: process.env.DB_USER || 'admin', password: process.env.DB_PASSWORD || '123456', }, dbName: 'docker', useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false, }) db.on('error', console.error.bind(console, '连接错误 :')) db.once('open', () => { console.log('mongoose 已连接') })
|
当使用 root 用户连接的时候,一定要直接连到根目录,例如 mongodb://mongo:27017/
,末尾是不带 dbName 的。如果是 dbName 的 User,则要连到指定 db 才行。
本文作者:草梅友仁
本文地址: https://blog.cmyr.ltd/archives/215037a.html
版权声明:转载请注明出处!