溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于mongoose認證踩的坑【url參數(shù)無法識別】

發(fā)布時間:2020-08-15 14:30:23 來源:ITPUB博客 閱讀:374 作者:steven_hua 欄目:關系型數(shù)據(jù)庫
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

#嘗試用命令行連接 >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" }

連接成功了,而且執(zhí)行讀寫操作也沒問題,那會不會是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驅動的,應該不大會出現(xiàn)這種情況。那會不會是mongoose無法識別url參數(shù)呢.接下來去掉'?authMechanism=MONGODB-CR'這段字符串 MongoError: server 127.0.0.1:27017 timed out 果然是mongoose無法識別這段參數(shù),接下來翻文檔 [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參數(shù)無法識別】

修改代碼,以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 完美?。?! 坑嘛, 踩踩更健康, 特別對于我們這些新手來說。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI