2020-11-07

使用 mongoose 連線遠端 mongodb (ubuntu)

使用 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;

沒有留言:

FB 留言