Получить объект хранилища данных Google с помощью NodeJS

#node.js #google-app-engine #google-cloud-platform #google-cloud-datastore

#node.js #google-app-engine #google-облачная платформа #google-облачное хранилище данных

Вопрос:

Я безуспешно пытаюсь получить свой ключ Api для службы, хранящейся как объект в облачном хранилище данных Google, с моего сервера NodeJS, работающего на GAE. Я не могу найти никакой полезной документации, может кто-нибудь помочь мне узнать, как получить объект? Заранее благодарю вас

Мой объект в хранилище данных

Мой не работающий код:

 const {Datastore} = require('@google-cloud/datastore');
const projectId = 'abcdefghi';
const ds = new Datastore({
  projectId: projectId,
});
const keyName = 'UNSPLASH_KEY';
const kind = 'Strings';
const stringKey = ds.key([kind, keyName]);

var appkey = 'not set';

var entity  = {
key: stringKey,
value: appkey,
};

entity = ds.get(stringKey);
  

Комментарии:

1. Что означает «не работает»?

2. @DanCornilescu я не понимаю, какой тип структуры я должен получить от ds.get(), я не могу найти ни одного полезного примера, на данный момент, если я подключаюсь к консоли. запишите результат get(), я вижу ‘Обещание { <ожидание> }’

Ответ №1:

Получаемый Promise объект указывает, что .get() функция является асинхронной и представляет возможное завершение (или сбой) выполнения этой функции, а не ее результат.

Чтобы увидеть фактический результат выполнения функции (если, конечно, это удастся), вам нужно использовать с ней await оператор:

 entity = await ds.get(stringKey);
  

Это показано в примере получения объекта:

 const [entity] = await datastore.get(taskKey);
  

Что касается структуры — результатом является словарь с записью для каждого свойства объекта. Вы можете вручную добавить свойство к объекту в консоли, и вы увидите его в результате при следующем получении объекта. Из объектов, свойств и ключей (выделено мной):

Объекты данных в Cloud Firestore в режиме хранилища данных называются объектами. Объект имеет одно или несколько именованных свойств, каждое из которых может иметь одно или несколько значений. Объекты одного и того же типа не обязательно должны иметь одинаковые свойства, а значения объекта для данного свойства не обязательно должны иметь один и тот же тип данных. (При необходимости приложение может устанавливать и применять такие ограничения в своей собственной модели данных.)

Комментарии:

1. Хорошо, спасибо, но как мне следует структурировать возвращаемый объект entity? мне все еще не ясно Спасибо за вашу помощь

2. Отлично, я смог заставить его работать сейчас, большое вам спасибо!