连接 Cosmos 和 SQL 数据库中的数据可以通过以下步骤完成:
const express = require('express');
const CosmosClient = require('@azure/cosmos').CosmosClient;
const sql = require('mssql');
const app = express();
// 连接到 Cosmos DB
const cosmosEndpoint = '<Cosmos DB 连接字符串>';
const cosmosKey = '<Cosmos DB 密钥>';
const cosmosClient = new CosmosClient({ endpoint: cosmosEndpoint, key: cosmosKey });
// 连接到 SQL 数据库
const sqlConfig = {
user: '<SQL 数据库用户名>',
password: '<SQL 数据库密码>',
server: '<SQL 数据库服务器>',
database: '<SQL 数据库名称>',
options: {
encrypt: true // 如果启用了 SSL 连接,需要设置为 true
}
};
// 定义路由
app.get('/data', async (req, res) => {
try {
// 从 Cosmos DB 获取数据
const cosmosContainer = cosmosClient.database('<Cosmos DB 数据库名称>').container('<Cosmos DB 容器名称>');
const cosmosQuery = 'SELECT * FROM c';
const { resources: cosmosData } = await cosmosContainer.items.query(cosmosQuery).fetchAll();
// 连接到 SQL 数据库并获取数据
await sql.connect(sqlConfig);
const { recordset: sqlData } = await sql.query('SELECT * FROM <SQL 数据库表名>');
// 将 Cosmos 和 SQL 数据合并并发送回客户端
const mergedData = { cosmosData, sqlData };
res.json(mergedData);
} catch (error) {
console.error(error);
res.status(500).json({ error: 'Internal Server Error' });
}
});
// 启动服务器
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
<Cosmos DB 连接字符串>
, <Cosmos DB 密钥>
, <SQL 数据库用户名>
, <SQL 数据库密码>
, <SQL 数据库服务器>
, <SQL 数据库名称>
, <Cosmos DB 数据库名称>
, <Cosmos DB 容器名称>
, <SQL 数据库表名>
替换为实际的连接信息。http://localhost:3000/data
来获取连接的 Cosmos 和 SQL 数据库中的数据。请注意,上述示例代码仅供参考,实际情况可能因编程语言、框架和数据库驱动程序的不同而有所变化。在实际开发中,建议根据具体需求和使用的技术栈进行适当的调整和优化。
腾讯云提供了一系列云计算产品,包括云数据库 TencentDB、云原生服务 TKE、云存储 COS 等,可以根据具体需求选择适合的产品。你可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于腾讯云的产品和服务。
领取专属 10元无门槛券
手把手带您无忧上云