简体   繁体   中英

connecting to remote mongodb with nodejs

i have a remote mongo server and i want to connect to that with nodejs. i tried connecting directly with mongo shell and it was ok... but i cant connect to that mongodb server in nodejs.. the mongo command for connection:

mongo --host 192.168.10.33 --port 27017 -u mohammad -p "mypassw@12" --authenticationDatabase=access

i only want to convert that command into nodejs connection config.. something like:

uri = mongodb://mohammad:mypassw@12@192.168.10.33:27017/"

The URI should be encoded

uri = "mongodb://mohammad:mypassw%4012@192.168.10.33:27017/access"

mongo.connect(uri, { useNewUrlParser: true }, (err, db) => {});

Connecting to a remote Mongo can sometimes be tricky, mongoose can help a great lot with connecting to your remote db. The code below should be able to do the trick and connect.

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!')
})

I guess the issue might be with your password, it looks like to contains a special character that is used by the mongodb driver to separate the credentials from the host:

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]

If you have a @ in your password, you have to apply an percent encoding it by adding a % character.

Here is the list of character to encode according to mongodb driver documentation : : /? # [ ] @

i have a remote mongo server and i want to connect to that with nodejs. i tried connecting directly with mongo shell and it was ok... but i cant connect to that mongodb server in nodejs.. the mongo command for connection:

mongo --host 192.168.10.33 --port 27017 -u mohammad -p "mypassw@12" --authenticationDatabase=access

i only want to convert that command into nodejs connection config.. something like:

uri = mongodb://mohammad:mypassw@12@192.168.10.33:27017/"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM