javascript - Cosmos DB 查询可在数据资源管理器中使用,但不适用于 Node.js
问题描述
我正在尝试使用 Node.js 对我的 cosmos db 运行以下查询。
const querySpec = {
query: "SELECT * FROM Users u WHERE u.id = @email",
parameters: [
{
name: "@email",
value: "testuser@gmail.com"
}
]
};
const { result: results } = client.database(databaseId).container(containerId).items.query(querySpec).toArray();
if (results.length == 0) {
throw "No matching user";
} else if (results.length > 1) {
throw "Account found";
}
const user = results[0];
console.log(user);
但是我不断收到错误消息TypeError: results is undefined
。该查询在数据资源管理器中运行良好。databaseId
如果我使用console.log ,containerId
打印我需要的值。
为什么我会收到此错误?
解决方案
我相信您收到此错误的原因是因为query
它是一种async
方法,而您没有等待它。您可以通过更改以下代码行来尝试:
const { result: results } = client.database(databaseId).container(containerId).items.query(querySpec).toArray();
到:
const { result: results } = await client.database(databaseId).container(containerId).items.query(querySpec).toArray();
看看这是否能解决这个问题。
推荐阅读
- java - Android Java:非欧盟用户的谷歌 GDPR 检查冻结
- shopware - ShopWare 中 Article.availableFrom 的更改无效
- javascript - 使用 JavaScript 缩放浏览器内容
- jquery - jquery datatable sotring 在 IE 中无法使用这种格式“MMM-YYYY”在 chrome 中可以正常工作
- python - 如何显示所有数据并将其保存在文本文件中?
- node.js - Node.js + Express 站点的最佳服务器
- excel - 合并2个excel代码
- typescript - 如何在 Visual Studio Code 中的项目之间共享通用(和积极修改的)TypeScript 文件?
- android - 如何实现 MediaStyle 通知以支持 Android Oreo?
- sql - 为无效的输入数据类型创建错误消息