Javascript Cosmos DB查询在Data Explorer中工作,但在Node.js中不工作
我试图使用Node.js对我的cosmos db运行以下查询Javascript Cosmos DB查询在Data Explorer中工作,但在Node.js中不工作,javascript,node.js,azure,azure-cosmosdb,azure-cosmosdb-sqlapi,Javascript,Node.js,Azure,Azure Cosmosdb,Azure Cosmosdb Sqlapi,我试图使用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 } =
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是未定义的
。查询在数据资源管理器中工作正常databaseId
和containerId
打印使用console.log时所需的值
为什么会出现此错误?我相信您之所以会出现此错误,是因为
query
是一种async
方法,您没有等待它。您可以尝试更改以下代码行:
const { result: results } = client.database(databaseId).container(containerId).items.query(querySpec).toArray();
致:
看看这是否解决了这个问题。我不得不将
query
放在async
函数中,然后调用它,但这是有效的。非常感谢。
const { result: results } = await client.database(databaseId).container(containerId).items.query(querySpec).toArray();