node.js - 如何在 nodejs 应用程序中连接到 mongoDs-Atlas?
问题描述
我正在尝试从我的 node.js 应用程序连接到我的 mongoDb-Atlas
这是我的代码:
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();
});
我得到的错误:
25) 在执行操作 (/Users/admin/Desktop/node/node_modules/mongodb/lib/utils.js:418:7) 在 MongoClient.connect (/Users/admin/Desktop/node/node_modules/mongodb/lib/mongo_client. js:175:10) 在对象。(/Users/admin/Desktop/node/index.js:63:8) 在 Module._compile (internal/modules/cjs/loader.js:707:30) 在 Object.Module._extensions..js (internal/modules /cjs/loader.js:718:10) 在 Module.load (internal/modules/cjs/loader.js:605:32) 在 tryModuleLoad (internal/modules/cjs/loader.js:544:12)
我尝试过多次更改密码,它不包含任何特殊字符。
解决方案
您的密码在 URL 上包含一些不允许的字符 尝试使用 uri_decode_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`;
推荐阅读
- java - Java Process 对象无法执行给定的命令
- java - ListView 仅显示来自数据库匹配条件集的 4 条记录中的 3 条
- python - django_language cookie 上的安全失败
- django - 在 Django 中,我如何影响与数据库的连接过程?
- powershell - 如何在 PowerShell 中修复 DLL LoaderExceptions
- excel - 用户表单日期格式文本框
- java - 为 XNAT 导入 Gradle 项目的问题 - 未解决的类型
- r - 使用 ggplot2 对象和自定义字体从终端运行 R 脚本(字体类型无效)
- python - 实现metropolis-hasting算法
- java - 获取一个空的 json 实体并且不能使用 Spring Boot 在运行时持久化