[英]connecting to remote mongodb with nodejs
我有一個遠程 mongo 服務器,我想用 nodejs 連接到它。 我嘗試直接與 mongo shell 連接,沒問題...但我無法連接到 nodejs 中的 mongodb 服務器。用於連接的 mongo 命令:
mongo --host 192.168.10.33 --port 27017 -u mohammad -p "mypassw@12" --authenticationDatabase=access
我只想將該命令轉換為 nodejs 連接配置。類似於:
uri = mongodb://mohammad:mypassw@12@192.168.10.33:27017/"
URI 應該被編碼
uri = "mongodb://mohammad:mypassw%4012@192.168.10.33:27017/access"
mongo.connect(uri, { useNewUrlParser: true }, (err, db) => {});
連接到遠程 Mongo 有時會很棘手,mongoose 對連接到遠程數據庫有很大幫助。 下面的代碼應該能夠做到這一點並進行連接。
const mongoose = require('mongoose');
mongoose.set('useFindAndModify', false);
const uri = "mongodb+srv://user:pass@clusterName.d4zrk.mongodb.net/databaseName?retryWrites=true&w=majority";
mongoose.connect(uri, { useNewUrlParser: true, useUnifiedTopology: true })
const db = mongoose.connection
db.on('error', (err) => {
console.log(err)
})
db.once('open', () => {
console.log('Database Connection Established!')
})
我想問題可能出在您的密碼上,它看起來包含一個特殊字符,mongodb 驅動程序使用該字符將憑據與主機分開:
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
如果您的密碼中有 @,則必須通過添加 % 字符來應用百分號編碼。
這是根據mongodb 驅動程序文檔進行編碼的字符列表::/? # [ ] @
我有一個遠程 mongo 服務器,我想用 nodejs 連接到它。 我嘗試直接與 mongo shell 連接,沒關系...但我無法連接到 nodejs 中的 mongodb 服務器 .. 用於連接的 mongo 命令:
mongo --host 192.168.10.33 --port 27017 -u mohammad -p "mypassw@12" --authenticationDatabase=access
我只想將該命令轉換為nodejs連接配置..類似於:
uri = mongodb://mohammad:mypassw@12@192.168.10.33:27017/"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.