Google datastore.lookup в Node.js не возвращает результатов
Я пытаюсь выполнить простой поиск по своим данным в хранилище данных Google через google-api-nodejs-client
JS плагин. Когда я запускаю этот поиск с помощью инструмента Google "попробуй сейчас", он работает нормально:
Request
POST https://www.googleapis.com/datastore/v1beta2/datasets/healthier-staging/lookup?key={YOUR_API_KEY}
{
"keys": [
{
"path": [
{
"kind": "Subscriber",
"name": "+1215XXXXXXX"
}
]
}
]
}
Response
200 OK
{
"found": [
{
"entity": {
"key": {
"partitionId": {
"datasetId": "s~healthier-staging"
},
"path": [
{
"kind": "Subscriber",
"name": "+1215XXXXXXX"
}
]
},
"properties": {
"phone": {
...
Однако когда я выполняю точно такой же запрос в Node.js, я не получаю никаких результатов - никаких ошибок, но также никаких результатов. Я могу проходить аутентификацию, подключаться к хранилищу данных, создавать транзакции и т. Д., Так что это не проблема аутентификации. Вот код узла, который я использую:
this.datastore.lookup({
datasetId : 'healthier-staging',
keys: [{ path: [{ kind: 'Subscriber', name: '+1215XXXXXXX' }] }]
},
(function(err, result) {
if (err) {
console.error(err);
return;
}
console.log(result);
}).bind(this));
И вывод консоли:
{ found: [], missing: [], deferred: [] }
Примечание: это связано с проблемой, о которой я сообщал в сообщении " Ошибка" каждый раз, когда я запускаю datastore.runQuery: необходимо указать одно из полей Query.query и Query.gql_query, где я пытаюсь прочитать те же данные, используя runQuery
вместо lookup
, но проблема, с которой я сталкиваюсь, другая.
Благодарю.
1 ответ
Ключи должны быть частью полезной нагрузки post:
this.datastore.lookup({
datasetId : 'healthier-staging',
resource: {
keys: [{ path: [{ kind: 'Subscriber', name: '+1215XXXXXXX' }] }]
}
},
(function(err, result) {
if (err) {
console.error(err);
return;
}
console.log(result);
}).bind(this));
Вы можете найти исходный код API хранилища данных здесь.