当前位置: 首页 > 知识库问答 >
问题:

如何连接到mongods-Atlas在nodejs应用程序?

方德宇
2023-03-14

我试图连接到我的mongoDb-Atlas从我的node.js应用程序

这是我的代码:

const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
const url = 'mongodb://username:<password>@cluster0-shard-00-00-afixn.mongodb.net:27017,cluster0-shard-00-01-afixn.mongodb.net:27017,cluster0-shard-00-02-afixn.mongodb.net:27017/Yarden?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true';
const client = new MongoClient(url);
client.connect(function(err) {
  assert.equal(null, err);
  console.log("Connected successfully to server");
  client.close();
});

我得到的错误:

AssertionError[ERR_ASSERTION]:null=[AssertionError[ERR_ASSERTION]:null==错误:密码包含非法的未转义字符]{at parseConnectionString(/Users/admin/Desktop/node/node_modules/mongodb/lib/url_parser.js:298:13)at parseHandler(/Users/admin/Desktop/node/node_modules/mongodb/lib/url_parser.js:129:14)at module.exports(/Users/admin/Desktop/node/node_modules/mongodb/lib/url_parser.js:25:12)在不推荐的位置(internal/util.js:67:15)在connect(/Users/admin/Desktop/node/node_modules/mongodb/lib/operati…at/Users/admin/Desktop/node/node/index.js:64:10在err(/Users/admin/Desktop/Desktop/node/node_modules/mongodb/lib/utils.js:411:14)在execallback)(/Users/admin/Desktop/node/node_modules/mongodb/lib/utils.js:401:25)在MongoClient执行操作(/Users/admin/Desktop/node/node_modules/mongodb/lib/utils.js:418:7)。在对象上连接(/Users/admin/Desktop/node/node_modules/mongodb/lib/mongo_client.js:175:10)。模块中的(/Users/admin/Desktop/node/index.js:63:8)_在对象处编译(internal/modules/cjs/loader.js:707:30)。模块_扩展。。模块处的js(internal/modules/cjs/loader.js:718:10)。在tryModuleLoad处加载(internal/modules/cjs/loader.js:605:32)(internal/modules/cjs/loader.js:544:12)

我尝试过多次更改密码,它不包含任何特殊字符。

共有2个答案

穆招
2023-03-14

将用户添加到mongodb并将用户名:替换为您的用户用户名,将密码替换为用户密码!

html lang-html prettyprint-override">const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
const url = 'mongodb://your username:<your password>@cluster0-shard-00-00-afixn.mongodb.net:27017,cluster0-shard-00-01-afixn.mongodb.net:27017,cluster0-shard-00-02-afixn.mongodb.net:27017/Yarden?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true';
const client = new MongoClient(url);
client.connect(function(err) {
  assert.equal(null, err);
  console.log("Connected successfully to server");
  client.close();
});
冯胤
2023-03-14

您的密码在URL上包含一些不允许的字符。请尝试使用uri\u decode\u auth:true对其进行转义

mongoClient.connect("mongodb://username:p%40ssword@host:port/dbname", { 
    uri_decode_auth: true 
    }, function(err, db) {

    }
);

或者像这样:

const dbUrl = `mongodb://username:${encodeURIComponent('@Password')}@localhost:27017/mydb`;

 类似资料:
  • 这是我的server.js文件 .env文件 我得到这个错误 (节点:16036)UnhandledPromiserEjectionWarning:错误:QueryReqWrap.OnResolve[as oncomplete](dns.js:203:19)处的queryTxt timeout data.ztmkm.MongoDB.NET(使用显示警告是在何处创建的)(节点:16036)Unhan

  • 我有一个web应用程序,它使用Spring Boot来处理后端逻辑。我正在尝试集成mongodb以跟踪有关此webapp用户的一些信息。我在mongodb Atlas上创建了一个数据库,通过Mongo Shell连接正常。当我尝试与Spring连接时,问题就出现了。让我给你看看所有的细节 在Atlas中,我将此IP地址(0.0.0.0/0(包括您当前的IP地址))添加到安全性中 然后我创建了一个名

  • 回答这个问题:我是否需要在Heroku上获得SSL支持才能使用SSL在Heroku和Atlas MongoDB Cloud之间建立连接?(TSL/SSL连接是访问Atlas MongoDB Cloud服务的要求)。 我正在尝试连接我的Heroku应用程序,它是在node中编写的。js,到Atlas MongoDB云托管的集群。 我当前的数据库托管在mLab(作为Heroku附加组件),用于通过mo

  • 我正在尝试使用MongoDB指南针使用Atlas

  • 我一直试图连接到我的Cassandra节点使用SSL选项,但我似乎无法让它工作。我有所有的密钥存储/信任存储设置正确。节点到节点加密工作,客户端到节点加密工作通过OpsCenter和。我的问题,我如何得到正确的证书/密钥/ca文件的cassandra-驱动程序在节点上?我尝试过根据我找到的提要导出,但是没有好的教程。 通过阅读其他Java连接教程,我可以只包含我的密钥库,在Ruby连接器上,它说它

  • 我有: > MongoDB Atlas集群 GCP之间的VPC对等。 当我尝试从我的家用笔记本电脑连接到DB时: 我收到一个错误: 我看到收到的本地IP地址,但我不明白如何连接到私有VPC中的我的数据库? 我将非常高兴能得到任何帮助!