Javascript 使用nodejs连接到远程mongodb
我有一个远程mongo服务器,我想用nodejs连接到它。我试着直接与mongo shell连接,一切正常。。。但是我无法连接到nodejs中的mongodb服务器。。 用于连接的mongo命令:Javascript 使用nodejs连接到远程mongodb,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我有一个远程mongo服务器,我想用nodejs连接到它。我试着直接与mongo shell连接,一切正常。。。但是我无法连接到nodejs中的mongodb服务器。。 用于连接的mongo命令: mongo——主机192.168.10.33——端口27017-u mohammad-p”mypassw@12“--authenticationDatabase=access 我只想将该命令转换为nodejs连接配置。。 比如: uri=mongodb://mohammad:mypassw@12@19
mongo——主机192.168.10.33——端口27017-u mohammad-p”mypassw@12“--authenticationDatabase=access
我只想将该命令转换为nodejs连接配置。。
比如:
uri=mongodb://mohammad:mypassw@12@192.168.10.33:27017/“
我想问题可能在于您的密码,它似乎包含mongodb驱动程序用于将凭据与主机分离的特殊字符:
mongodb://[username:password@]host1[:port1][,…hostN[:portN][/[defaultauthdb][?选项]]
如果密码中有@,则必须通过添加%字符来应用@
下面是要根据以下内容进行编码的字符列表::/?#[]@应该对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 atlas时遇到了同样的问题。这是密码。在URI中,您的密码不应包含特殊字符。更改密码是我的解决方案。这是mongodb文档:您需要在最后使用
访问数据库,否则它将再次验证管理员并出错。我尝试了这一点,然后上面写着未处理PromiserEjectionWarning:MongoError:Authentication failed
,我也尝试了```..:27017/access和….:27017/mydbname```但它们都不起作用可能是密码问题。用%40替换@还不够吗?我是js新手,可以使用简单字符串的%40编码吗?比如“mypassw%4012”“我试过吼叫,url,但仍然不起作用..url=”mongodb://mohammad:mypassw%4012@192.168.10.33:27017/mydbname“