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

将azure web应用程序连接到azure cosmos db

郜琦
2023-03-14

教程中一个引人注目的问题是azure cosmos db的连接字符串已经包含“?ssl=true&replicaset=globalDB”,我不明白为什么教程在连接到数据库时还要追加它。我已经从保存在。env文件中的连接字符串中删除了该部分,但也没有发生任何事情。我还对连接字符串中的特殊字符进行了编码,比如(==,@,?或/)。

在我看来,我不能正确地形成连接字符串,但我不知道如何解决这个问题。当您试图在空数据库中创建集合时,连接字符串的正确模式是什么?连接字符串和数据库名称之间以及数据库名称和查询之间应该有斜线?

另一个问题与教程中的代码包含了用于在控制台上显示消息的console.log函数调用有关。我的问题是,消息应该显示在哪个控制台上,是浏览器控制台还是节点控制台?在浏览器中没有显示任何消息。

const express = require('express');
const http = require('http');

const mongoose= require('mongoose');
const env = require('dotenv').load();    //Use the .env file to load the variables

const app = express();
var port = process.env.PORT || 5050; //normalizePort(process.env.PORT || '5050');
app.set('port', port);
app.set('views', 'views');
app.set('view engine', 'pug');

mongoose.connect(process.env.COSMOSDB_CONNSTR+process.env.COSMOSDB_DBNAME+"?ssl=true&replicaSet=globaldb"); //Creates a new DB, if it doesn't already exist
//mongoose.connect(dbc);
let db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
console.log("Connected to DB");
});

const cities = mongoose.model('cities', new mongoose.Schema({
    name: String,
    country: String
}));

const city = new cities({
 name: "Paris",
 country: "France"
});

city.save( function (err, savedCity) {
    console.log(JSON.stringify(savedCity));
});

app.get('/', function(req, res) {
    res.render('index', {
        panelTitle: "Azure CosmosDB Test",  
        panelBody:"Testing how to access Azure ComsosDB",
    });
});


app.use(express.static(__dirname + '/public'));

const server = http.createServer(app);
server.listen(port);

共有1个答案

安高翰
2023-03-14

我最近完成了这里的教程,它引导您构建一个使用Mongoose连接到Cosmos DB的基于Express的服务器。您可以在这里看到最终结果:https://github.com/ydogandjiev/react-cosmosdb

我遇到的几个问题是:

>

  • 我必须使用以下语法连接到数据库(或转义密码字符串):

    mongoose.connect(`mongodb://${env.user}.documents.azure.com:${env.port}/?        ssl=true`, {
      auth: {
        user: env.user,
        password: env.password
      }
    });
    

  •  类似资料:
    • 我目前正在进行一个项目,我们将数据存储在Azure Datalake上。Datalake与Azure Databricks挂钩。 该要求要求 Azure 数据砖连接到 C# 应用程序,以便能够运行查询并从 C# 应用程序获取全部结果。我们目前解决这个问题的方式是,我们已经在Databricks上创建了一个工作区,其中包含许多需要执行的查询。我们创建了一个链接到上述工作区的作业。从 C# 应用程序中

    • 问题内容: 我有一个Angular应用程序,我想在ReactJS中编写应用程序的某些部分。 如何将ReactJS应用程序注入现有的Angular应用程序中?我还需要组件的双向通信。 问题答案: 您可能需要其他选项,所以我在第2段中编写了它: 无需通信的Angular-ReactJS 具有双向通信的Angular-ReactJS 下面的所有代码都是最少的,无法在提出的步骤中显示问题。在GitHub上

    • 首先我是android应用程序开发环境的新手,我正在尝试使用jtds-1.3.1通过简单的android应用程序连接到MSSQLServer2008。jar驱动程序。我在网上搜索了很多例子,但没能连接到数据库 我得到的异常是网络错误IOException:连接超时 我不知道我的代码有什么问题,我使用的是Eclipse juno IDE<这是我的代码

    • 我试图将我的spring应用程序连接到debezium/kafka:0.10,但没有成功。最初应用程序使用Wurstmeister/kafka图像,但现在我引入了debezium的一个新功能,并且希望两者只使用一个kafka图像。我不能把应用程序连接到debezium kafka或debezium连接到wurstmeister kafka。有人知道这两个图像是否都可以使用一个图像?欢迎任何想法:)

    • 问题内容: 我正在研究将由学校使用的应用程序。每所学校将建立自己的数据库。每个学校都会为应用程序提供自己的“设置”文件。设置文件将包含创建设置文件的特定学校的数据库URL。这样一来,使用该应用程序的学生如果想连接到其他数据库,就只能加载其他设置文件。 我的问题是,如何保护用于连接数据库的用户名和密码?因此,只有应用程序具有对数据库的读写访问权限。应用程序仅具有该特定学校的读写权限吗? 如果您需要更