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
創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、青川網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城系統(tǒng)網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為青川等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
#嘗試用命令行連接>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驅(qū)動測試下
varMongoClient= 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驅(qū)動的,應(yīng)該不大會出現(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) 點擊進(jìn)去就找到我們想要的了。
修改代碼,以O(shè)bject的方式配置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 完美?。?! 坑嘛, 踩踩更健康, 特別對于我們這些新手來說。