关于mongoose认证踩的坑【url参数无法识别】-创新互联-成都快上网建站

关于mongoose认证踩的坑【url参数无法识别】-创新互联

http://cnodejs.org/topic/57baa91ddcaeb5d932db223b
#连接代码
var conn = mongoose.connect('mongodb://username:password@127.0.0.1:27017/test?authMechanism=MONGODB-CR');

#报错 >MongoError: server 127.0.0.1:27017 timed out

成都创新互联-专业网站定制、快速模板网站建设、高性价比汕头网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式汕头网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖汕头地区。费用合理售后完善,十多年实体公司更值得信赖。

#尝试用命令行连接 >mongo -u username -p password 127.0.0.1:27017 MongoDB shell version: 2.4.9 connecting to: 127.0.0.1:27017/test Error while trying to show server startup warnings: not authorized on admin to execute command { getLog: "startupWarnings" }

连接成功了,而且执行读写操作也没问题,那会不会是mongoose的问题呢? #接下来用mongoDB驱动测试下

var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://username:password@127.0.0.1:27017/test?authMechanism=MONGODB-CR'; MongoClient.connect(url, function(err, db) { console.log(err ? err : 'mongoDB连接成功!'); });

> node mongoDB.js mongoDB连接成功!

既然mongoose是基于mongoDB驱动的,应该不大会出现这种情况。那会不会是mongoose无法识别url参数呢.接下来去掉'?authMechanism=MONGODB-CR'这段字符串 MongoError: server 127.0.0.1:27017 timed out 果然是mongoose无法识别这段参数,接下来翻文档 [mongoose文档]http://mongoosejs.com/docs/api.html Ctrl+F 粘贴authMechanism没找到,直接点击connection.js在里面找到这一行 auth - options for authentication (see http://mongodb.github.com/node-mongodb-native/api-generated/db.html#authenticate) 点击进去就找到我们想要的了。 关于mongoose认证踩的坑【url参数无法识别】

修改代码,以Object的方式配置options!

const options = { user : "username", pass : "password", auth : {authMechanism: 'MONGODB-CR'} } var conn = mongoose.connect('mongodb://@127.0.0.1:27017/test',options);

重新运行 node app.js [2016-08-22 15:21:39.709] [INFO] console - app listen to 3000, NODE_ENV: development 完美!!! 坑嘛, 踩踩更健康, 特别对于我们这些新手来说。


新闻名称:关于mongoose认证踩的坑【url参数无法识别】-创新互联
当前URL:http://kswjz.com/article/pidjo.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流