我已经创建了一个启用 SSL 的 DocumentDB,并且我正在使用mongodb
包来使用主机NodeJS
连接这个数据库。Bastion
问题是,如果我在函数中放置一个硬编码字符串MongoClient.connect
,我就能够成功连接数据库。硬编码的代码如下所示。
let MongoClient = require('mongodb').MongoClient;
let client = MongoClient.connect(
'mongodb://User:PWD@DBURL:27017/DBNAME?tls=true&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false',
{
tlsCAFile: __dirname + `rds-combined-ca-bundle.pem` //Specify the DocDB; cert
},
function(err, client) {
if(err)
throw err;
console.log("1111111 2222222!!");
//Specify the database to be used
db = client.db('DBNAME');
//Specify the collection to be used
col = db.collection('COLNAME');
console.log("1111111 connected to db!!");
client.close();
});
现在因为这不是将硬编码值放入代码中的理想情况。我正在尝试从环境变量中读取值,并尝试将整个 URL 放入一个字符串变量中,并将该变量传递给该函数,如下所示。
const DBURL = "mongodb://"+user+":"+pwd+"@"+dbURL+":"+port+"/"+dbName+"?tls=true&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false";
let client = MongoClient.connect(DBURL,
{
tlsCAFile: __dirname + `rds-combined-ca-bundle.pem` //Specify the DocDB; cert
},
function(err, client) {
现在这个超时连接数据库。
关于它的任何建议,或者我应该使用任何其他包通过 NodeJS 连接 DocumentDB,请告诉我。