我正在运行 azure 文档中官方教程中的 node.js 控制台应用程序。请找到以下链接: https://learn.microsoft.com/en-us/azure/cosmos-db/sql/sql-api-nodejs-get-started 代码如下:
const cosmos = require("@azure/cosmos");
const CosmosClient = cosmos.CosmosClient;
const endpoint = "******"; // Add your endpoint
const masterKey = "******"; // Add the masterkey of the endpoint
const client = new CosmosClient({ endpoint, auth: { masterKey } });
const databaseId = "brondbid"; // Add the Database ID
const containerId = "broncollectid"; // Add the Container ID
const querySpec = {
query: "SELECT * FROM c"
};
async function run() {
const { result: results } = await client.database(databaseId).container(containerId).items.query(querySpec, { enableCrossPartitionQuery: true }).toArray();
for (var queryResult of results) {
let resultString = JSON.stringify(queryResult);
console.log(`\tQuery returned ${resultString}\n`);
}
}
async function handleError(error) {
console.log("\nAn error with code '" + error.code + "' has occurred:");
console.log("\t" + error.body || error);
}
run().catch(handleError);
当我在终端运行 Node app.js 时,出现此错误。
An error with code 'undefined' has occurred:
undefined
最佳答案
请尝试此代码:
const cosmos = require("@azure/cosmos");
const CosmosClient = cosmos.CosmosClient;
const endpoint = "******"; // Add your endpoint
const masterKey = "******"; // Add the masterkey of the endpoint
const client = new CosmosClient({ endpoint, key: masterKey });
const databaseId = "brondbid"; // Add the Database ID
const containerId = "broncollectid"; // Add the Container ID
const querySpec = {
query: "SELECT * FROM c"
};
async function run() {
const database = client.database(databaseId);
const container = database.container(containerId);
const { resources: results } = await container.items.query(querySpec, { enableCrossPartitionQuery: true }).fetchAll();
for (var queryResult of results) {
let resultString = JSON.stringify(queryResult);
console.log(`\tQuery returned ${resultString}\n`);
}
}
function handleError(error) {
console.log(error);
console.log("\nAn error with code '" + error.code + "' has occurred:");
console.log("\t" + error.body || error);
}
run().catch(handleError);
本质上,您的代码失败了,因为查询结果上没有可用的 .toArray()
方法。由于这不是 REST API 错误,因此您将收到错误代码 undefined
。
此外,查询返回 resources
键中的数据,而不是像您使用的那样 result
键。
关于用于管理 Azure Cosmos db 的 Node.js 控制台应用程序代码教程代码抛出未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71428441/