每次连接到mongoLab时,Mongoose身份验证都会失败

时间:2015-10-12 13:14:03

标签: node.js mongodb authentication mongoose mlab

我是这个领域的初学者,我找不到解决这个问题的方法。 我正在使用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}'

1 个答案:

答案 0 :(得分:1)

看起来您正在使用MongoLab Sandbox数据库,该数据库使用SCRAM-SHA-1运行MongoDB 3.0。

您必须将Mongoose驱动程序更新为使用MongoDB 3.0-SCRAM文档的1.4.29或更高版本的基础Node.js驱动程序的更高版本。