我是这个领域的初学者,我找不到解决这个问题的方法。 我正在使用MongoLabs数据库服务在Node.js中构建聊天应用程序。 我正在尝试使用mongoose@3.8.10驱动程序连接到mongoDB。 我已经多次检查过,一切都很好,但我仍然得到了#34; Auth Failed Error Code 18"。
这是我的package.json
dependencies: {
"connect-mongo": "^0.4.1",
"cookie-parser": "^1.1.0",
"express": "^4.2.0",
"express-session": "^1.2.0",
"hogan-express": "^0.5.2",
"mongoose": "^3.8.10",
"passport": "^0.2.0",
"passport-facebook": "^1.0.3",
"socket.io": "^0.9.17"
}
我已经提到了mongoose docs,以便更好地理解"如何使用Mongoose作为驱动程序连接到MonoDB"。但我找不到解决方案。 这是我尝试连接的代码:
var express = require('express'),
app = express(),
path = require('path'),
config = require('./config/config.js'),
session = require('express-session'),
ConnectMongo = require('connect-mongo')(session),
mongoose = require('mongoose'),
passport = require('passport'),
FacebookStrategy = require('passport-facebook').Strategy;
var db = mongoose.connect(config.dbURL);
mongoose.connect(config.dbURL, function (err, res) {
if (err) {
console.log ('ERROR connecting to: ' + config.dbURL + '. ' + err + '----- db =' + db );
} else { console.log ('Succeeded connected to: ' + config.dbURL);
}
});
config.dbURL是我从mongoLab获得的网址 就像这样:
'mongodb://{DBuser}:{DBpswrd}@ds0{port}.mongolab.com:{port}/{dbName}'
答案 0 :(得分:1)
看起来您正在使用MongoLab Sandbox数据库,该数据库使用SCRAM-SHA-1运行MongoDB 3.0。
您必须将Mongoose驱动程序更新为使用MongoDB 3.0-SCRAM文档的1.4.29或更高版本的基础Node.js驱动程序的更高版本。