Как получить доступ к идентификаторам Google Datastore на внешнем интерфейсе, когда информация возвращается через ответ API в Express? - PullRequest
0 голосов
/ 16 октября 2018

Я работаю с React.js, Node + Express для сервера API и Google Datastore.Я хотел бы запросить хранилище данных и вернуть обратно во внешний список список сущностей и их идентификаторы БД.

Когда я запускаю обычный запрос хранилища данных, список сущностей возвращается без идентификаторов.

На основании https://cloud.google.com/nodejs/docs/reference/datastore/1.4.x/Query Я обнаружил, что для доступа к идентификаторам БД мне нужно использовать results[0][x][Datastore.KEY] для доступа к каждому идентификатору.Такой подход хорош в конце.Тем не менее, как бы вы получили доступ к идентификаторам на внешнем интерфейсе?

Я могу отправить выходные данные запроса на внешний интерфейс, используя

app.get('/example_url', (req, res) => {
    res.setHeader('Content-Type', 'application/json');
    const query = datastore.createQuery('entity');
     datastore.runQuery(query).then(results => {
        res.send(JSON.stringify( {results }));
.....});

Однако на внешнем интерфейсе я не могуполучить доступ к идентификаторам.Я не могу использовать обозначение, данное для серверной части.results[0][x][Datastore.KEY] хранилище данных не определено на внешнем интерфейсе.Не уверен, что делать.

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Единственное решение, которое я нашел до сих пор: на бэкэнде итерируйте полученный массив / объект key.id.поместите эти "идентификаторы" в новый массив и отправьте его внешнему интерфейсу вместе с остальными результатами запроса к БД.Тогда передний конец получит доступ к этим идентификаторам.

0 голосов
/ 17 октября 2018

Я описал Python в App Engine, поэтому мой ответ не будет полным.

В Python вы должны передать ключ в виде строки во внешний интерфейс, например: my_key = YourObjectModel.key.urlsafe()

Чтобы сделать это в JS, я думаю, это должно быть: YourObjectModel.key.id

У вас есть пример в конце этого урока

...