Mongodb Driver: missing delimiting slash between hosts and options

匿名 (未验证) 提交于 2019-12-03 00:48:01

问题:

I copied codes from MONGODB NODE.JS DRIVER 2.2 and modified a little.

// connect to mongodb var MongoClient = require('mongodb').MongoClient, f = require('util').format;  var user = encodeURIComponent('admin'), password = encodeURIComponent('123456'), authMechanism = 'DEFAULT', authSource = 'admin';  // connection url var url = f('mongodb://%s:%s@localhost:27017?authMechanism=%s&authSource=%s', user, password, authMechanism, authSource);  var db = null; MongoClient.connect(url, function(err, db) { //Here is line 20!     if(err) {          console.log('Unable to connect to the mongoDB server. Error:', err);      }     else {           console.log('Connection established to', url);         db = database // once connected, assign the connection to the global variable      } }) 

However, I met an odd error.

Error: missing delimiting slash between hosts and options. at module.exports (/home/lixing/Dropbox/thesis/node_modules/mongodb/lib/url_parser.js:37:11) at connect (/home/lixing/Dropbox/thesis/node_modules/mongodb/lib/mongo_client.js:289:16) at Function.MongoClient.connect (/home/lixing/Dropbox/thesis/node_modules/mongodb/lib/mongo_client.js:113:3) at Object.<anonymous> (/home/lixing/Dropbox/thesis/server.js:20:13) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.runMain (module.js:604:10) 

It is mentioned in the console that there is something wrong in MongoClient.connect.

However, I couldn't fix this problem. Is it a bug or my problem?

Thanks.

回答1:

You are missing a / between the port number and the options.

mongodb://%s:%s@localhost:27017/?authMechanism=%s&authSource=%s

More information about connection strings: https://docs.mongodb.com/manual/reference/connection-string/



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!