繁体   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