簡體   English   中英

使用 nodejs 連接到遠程 mongodb

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM