Запрос Cosmos DB работает в проводнике данных, но не в Node.js - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь выполнить следующий запрос к моей базе данных cosmos, используя Node.js.

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 и containerId выводят нужные мне значения, если я использую console.log.

Почему я могу получить эту ошибку?

1 Ответ

1 голос
/ 16 мая 2019

Я полагаю, что причина этой ошибки в том, что 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();

и посмотреть, решит ли это проблему.

...