我正在尝试使用node api将我的react应用程序连接到我的cosmos db。我可以让服务器运行,但是当我发送post或get请求时,我得不到响应。我已经更新了防火墙以允许我的ip,我几乎阅读了我能找到的关于连接到cosmos的每一篇文章,但没有一个资源对我有所帮助。
以下是连接代码
const mongoose = require('mongoose');
const env = require('./env/environment');
mongoose.set('useNewUrlParser', true);
mongoose.set('useUnifiedTopology', true);
mongoose.Promise = global.Promise;
const mongoUri = `mongodb://${env.dbName}:${env.key}@${env.dbName}.mongo.cosmos.azure.com:${env.cosmosPort}/?ssl=true&replicaSet=globaldb&retrywrites=false&maxIdleTimeMS=120000&appName=@${env.dbName}@`;
function connect() {
return mongoose.connect(mongoUri, { auth: { user: env.dbName, password: env.key }});
}
module.exports = {
connect,
mongoose
};然后env文件看起来像这样
const cosmosPort = 1234; // replace with your port
const dbName = 'your-cosmos-db-name-goes-here';
const key = 'your-key-goes-here';
module.exports = {
cosmosPort,
dbName,
key
};env文件包含实际信息,这只是一个示例。
发布于 2020-09-16 23:05:20
我认为您的mongoUri需要采用这种格式的mongodb://${env.dbName}:${env.key}@${env.dbName}.mongo.cosmos.azure.com:${env.cosmosPort}/?ssl=true&replicaSet=globaldb&retrywrites=false&maxIdleTimeMS=120000&appName=@${env.dbName}@
我花了一些功夫,文档也不是很好。
发布于 2020-09-11 16:12:24
您确定.env文件可以使用const来定义参数吗?我不太确定。但只要遵循官方文件,我就能成功地连接到cosmosdb。

建议参考我的截图,创建一个.env文件,并替换参数进行尝试。
var mongoose = require('mongoose');
var env = require('dotenv').config();
mongoose.connect("mongodb://"+process.env.COSMOSDB_HOST+":"+process.env.COSMOSDB_PORT+"/"+process.env.COSMOSDB_DBNAME+"?ssl=true&replicaSet=globaldb", {
auth: {
user: process.env.COSMODDB_USER,
password: process.env.COSMOSDB_PASSWORD
},
useNewUrlParser: true,
useUnifiedTopology: true,
retryWrites: false
})
.then(() => console.log('Connection to CosmosDB successful'))
.catch((err) => console.error(err));https://stackoverflow.com/questions/63818464
复制相似问题