使用 mongoose 連線遠端 mongodb (ubuntu)
通常連線遠端的 Mongodb server,使用 connection string uri:
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
Admin 帳號設定方式同 這篇。但是在使用 mongoose 連線時,一般的 connection uri 設定一直無法正常連線。
爬了文才發現要在 mongoose 連線時,使用 auth, user, pass 三個另外的設定,uri 內就不用放帳號和密碼了。例如我的連線檔案 mongoose-connect.js
:
const mongoose = require('mongoose');
mongoose.connect(process.env.MONGO_DSN, {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
useFindAndModify: false,
"auth": {
"authSource": "admin"
},
"user": process.env.MONGO_USER,
"pass": process.env.MONGO_PASS,
});
const db = mongoose.connection;
db.on('error', (error)=>{
console.log('Mongoose connection error:', error);
console.log(`mongoose.connection.readyState: ${mongoose.connection.readyState}`);
});
db.on('open', ()=>{
console.log('Mongoose connected ~');
});
module.exports = mongoose;
沒有留言:
張貼留言