Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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 &引用;“无法验证”;和承诺的mongo_Node.js_Mongodb_Authentication - Fatal编程技术网

Node.js &引用;“无法验证”;和承诺的mongo

Node.js &引用;“无法验证”;和承诺的mongo,node.js,mongodb,authentication,Node.js,Mongodb,Authentication,我使用NodeJS后端代码连接MongoDB。它工作得很好,直到我启用MongoDB的客户端访问控制。运行此代码时,我收到“无法验证”消息: 纯MongoDB代码(即没有承诺…)工作正常: var mongodb = require('mongodb'); var uri = 'mongodb://myusername:mypassword@localhost/mydb'; mongodb.MongoClient.connect(uri, function (err, db) { if

我使用NodeJS后端代码连接MongoDB。它工作得很好,直到我启用MongoDB的客户端访问控制。运行此代码时,我收到“无法验证”消息:

纯MongoDB代码(即没有承诺…)工作正常:

var mongodb = require('mongodb');
var uri = 'mongodb://myusername:mypassword@localhost/mydb'; 
mongodb.MongoClient.connect(uri, function (err, db) {
    if (err) {
        // never reached here
    }
    var candidates = db.collection('candidates');
    candidates.insert(req.body, function(err, result) {
        if (err) {
        // never reached here
        }
        res.send('{result: success}');
    });
});

有什么想法吗?

根据github存储库中的几个问题(请参阅和)使用此库进行身份验证似乎完全失败。在第二个链接中,大多数人似乎都在通过promisify、bluebird或一个瘦的自定义包装器来用承诺包装官方库。

立即连接,并担心以后的收藏var db=pmongo('mydb'));来自文档..希望此帮助已经完成,不起作用…上午..来自您的邮件,其中e.message说“无法验证”“……这就是问题所在。检查mongodb的凭据。你有所有的访问权限吗。并尝试使用mongo shell连接同一个凭据。就像这个mongo-u-p--authenticationDatabase yourAuthDBI使用第二段代码(可以工作)来“证明”这不是错误凭据的问题。mongo shell也为我工作。这是save()方法的问题(或者是我之前错过的问题),但我就是搞不清楚到底是什么。。。
var mongodb = require('mongodb');
var uri = 'mongodb://myusername:mypassword@localhost/mydb'; 
mongodb.MongoClient.connect(uri, function (err, db) {
    if (err) {
        // never reached here
    }
    var candidates = db.collection('candidates');
    candidates.insert(req.body, function(err, result) {
        if (err) {
        // never reached here
        }
        res.send('{result: success}');
    });
});