Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 指定数据库时,身份验证失败错误_Node.js_Mongodb_Mean Stack - Fatal编程技术网

Node.js 指定数据库时,身份验证失败错误

Node.js 指定数据库时,身份验证失败错误,node.js,mongodb,mean-stack,Node.js,Mongodb,Mean Stack,我正在尝试从web应用程序连接到mongodb。但是,当我指定要连接的数据库时,我从mongo收到一个auth failed错误。如果我没有指定数据库,则到连接成功 我已经用mongo命令行showdbs检查了拼写和数据库是否退出 var dbURI = 'mongodb://root:pwd@localhost:27017/dbname'; mongoose.connect(dbURI, function(err) { if (err) throw err; }); C:\Users

我正在尝试从web应用程序连接到
mongodb
。但是,当我指定要连接的数据库时,我从mongo收到一个
auth failed错误。如果我没有指定数据库,则到连接成功

我已经用mongo命令行
showdbs检查了拼写和数据库是否退出

var dbURI = 'mongodb://root:pwd@localhost:27017/dbname';
mongoose.connect(dbURI, function(err) {
    if (err) throw err;
});

C:\Users\David\Documents\Bitbucket\productWebsite\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\base.js:245
        throw message;
              ^
MongoError: auth failed
    at Object.toError (C:\Users\David\Documents\Bitbucket\productWebsite\node_modules\mongoose\node_modules\mongodb\lib\mongodb\utils.js:114:11)
    at C:\Users\David\Documents\Bitbucket\productWebsite\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1130:31
    at C:\Users\David\Documents\Bitbucket\productWebsite\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1847:9
    at Server.Base._callHandler (C:\Users\David\Documents\Bitbucket\productWebsite\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\base.js:445:41)
    at C:\Users\David\Documents\Bitbucket\productWebsite\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\server.js:478:18
    at MongoReply.parseBody (C:\Users\David\Documents\Bitbucket\productWebsite\node_modules\mongoose\node_modules\mongodb\lib\mongodb\responses\mongo_reply.js:68:5)
    at null.<anonymous> (C:\Users\David\Documents\Bitbucket\productWebsite\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\server.js:436:20)
    at emit (events.js:95:17)
    at null.<anonymous> (C:\Users\David\Documents\Bitbucket\productWebsite\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\connection_pool.js:201:13)
    at emit (events.js:98:17)
var dbURI='1〕mongodb://root:pwd@localhost:27017/dbname';
connect(dbURI,函数(err){
如果(错误)抛出错误;
});
C:\Users\David\Documents\Bitbucket\productWebsite\node\u modules\mongoose\node\u modules\mongodb\lib\mongodb\connection\base.js:245
抛出消息;
^
MongoError:身份验证失败
在Object.toError(C:\Users\David\Documents\Bitbucket\productWebsite\node\u modules\mongoose\node\u modules\mongodb\lib\mongodb\utils.js:114:11)
位于C:\Users\David\Documents\Bitbucket\productWebsite\node\u modules\mongoose\node\u modules\mongodb\lib\mongodb\db.js:1130:31
位于C:\Users\David\Documents\Bitbucket\productWebsite\node\u modules\mongoose\node\u modules\mongodb\lib\mongodb\db.js:1847:9
在Server.Base.\u callHandler(C:\Users\David\Documents\Bitbucket\productWebsite\node\u modules\mongoose\node\u modules\mongodb\lib\mongodb\connection\Base.js:445:41)
位于C:\Users\David\Documents\Bitbucket\productWebsite\node\u modules\mongoose\node\u modules\mongodb\lib\mongodb\connection\server.js:478:18
在MongoReply.parseBody(C:\Users\David\Documents\Bitbucket\productWebsite\node\u modules\mongoose\node\u modules\mongodb\lib\mongodb\responses\mongo\u reply.js:68:5)
在空。(C:\Users\David\Documents\Bitbucket\productWebsite\node\u modules\mongoose\node\u modules\mongodb\lib\mongodb\connection\server.js:436:20)
在发出时(events.js:95:17)
在空。(C:\Users\David\Documents\Bitbucket\productWebsite\node\U modules\mongoose\node\U modules\mongodb\lib\mongodb\connection\connection\U pool.js:201:13)
在发出时(events.js:98:17)
我正在使用Bitnami Mean stack for Windows


有人能告诉我我忘记了什么吗?

重要的是您尝试对哪个数据库进行身份验证。对创建用户的数据库进行身份验证。一旦通过身份验证,您可以切换到使用其他数据库。

根据我的经验,我发现原因可能是mongoose和mongoDB之间的版本差异。在my package.json中,mongoose版本是3.8.5,而我的mongoDB版本是3.0.4,我将mongoose版本3.8.5更改为4.1.5,并运行以下命令:

npm update

然后运行了这个应用程序,这对我很有用。

你可能想做这样的事情

var opt = {
        user: config.username,
        pass: config.password,
        auth: {
            authdb: 'admin'
        }
    };

var connection = mongoose.createConnection(config.database.host, 'mydatabase', config.database.port, opt);

“authdb”选项是用户在其下创建的数据库。

是否已将身份验证添加到该数据库?是的,我已使用Robomongo GUI和本机mongo控制台连接到该数据库。凭据工作是否可能用户名或密码包含需要转义的字符?作为后续,如果是这样的话,请考虑在连接时,必须在<代码> MangoCuclie<代码>上设置<代码> urialCuffDEIAuth< /Cord>选项。我不使用特殊字符