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 无法使用monk连接到远程服务器上托管的mongodb_Node.js_Mongodb_Monk - Fatal编程技术网

Node.js 无法使用monk连接到远程服务器上托管的mongodb

Node.js 无法使用monk连接到远程服务器上托管的mongodb,node.js,mongodb,monk,Node.js,Mongodb,Monk,我使用的是NodeJS,对于后端,我使用的是mongodb 对于连接到数据库,如果我使用下面的行,它将获取数据 var db = monk('localhost:27017/nodetest2'); 但如果我将其改为下线,则不会获取数据 var db = monk('mongodb://username:password@XXX.mongolab.com:27483/userdb'); 我已经在两个地方创建了同名的集合 router.get('/userlist', function (re

我使用的是NodeJS,对于后端,我使用的是mongodb

对于连接到数据库,如果我使用下面的行,它将获取数据

var db = monk('localhost:27017/nodetest2');
但如果我将其改为下线,则不会获取数据

var db = monk('mongodb://username:password@XXX.mongolab.com:27483/userdb');
我已经在两个地方创建了同名的集合

router.get('/userlist', function (req, res) {
    var db = req.db;
    var collection = db.get('userlist');
    collection.find({}, {}, function (e, docs) {
        res.json(docs);
    });
});
  • 检查您的IP是否已列入白名单
  • 尝试通过shell连接
  • 添加错误处理

    const db = require("monk")(uri);
    db.then(() => {
      console.log('Connected correctly to server')
    })
    

    您应该从添加错误处理开始。我可以很好地连接到该数据库(但我无法执行查询,因为我没有正确的用户名/密码,因此查询会返回身份验证错误)。谢谢@robertklep会这样做。要启用此功能,我必须进行任何配置/设置级别的更改吗?您应该首先找出查询不起作用的原因;使用一个独立的脚本是最简单的;如果您收到任何错误(查询回调中的
    e
    变量),请记录这些错误,以便了解发生了什么(可能是用户名/密码不匹配)。这可能是权限问题,与monk无关。尝试从shell进行连接,如果不起作用,请返回您的mongolab帐户并更改权限,直到您的某些功能正常为止。感谢robertklep、blakes Seven及其权限问题,我尝试使用不同的用户id和密码,结果成功了