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

#google-cloud-platform #google-cloud-datastore #datastore

#google-cloud-platform #google-cloud-datastore #хранилище данных

Вопрос:

Я хочу получить таблицу (со всеми строками) по имени. Я хочу выполнить HTTP-запрос, используя что-то вроде этого в теле {"table": user} .

Безуспешно пробовал этот код:

 'use strict';

const {Datastore} = require('@google-cloud/datastore');

// Instantiates a client
const datastore = new Datastore();

exports.getUsers = (req, res) => {

//Get List
const query = this.datastore.createQuery('users');
this.datastore.runQuery(query).then(results => {
  const customers = results[0];
  console.log('User:');
  customers.forEach(customer => {
    const cusKey = customer[this.datastore.KEY];
    console.log(cusKey.id);
    console.log(customer);
  });
})
.catch(err => { console.error('ERROR:', err); });


}
  

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

1. Привет и добро пожаловать в StackOverflow. При публикации вопросов, пожалуйста, постарайтесь помочь читателям. Например, в вашем вопросе вы сказали «Безуспешно пробовали этот код» … Можете ли вы уточнить? Что произошло в сравнении с тем, что вы ожидали?

Ответ №1:

Хранилище данных Google — это база данных NoSQL, которая работает с сущностями, а не с таблицами. Что вы хотите, так это загрузить все «записи», которые являются «идентификаторами ключей» в хранилище данных, и все их «свойства», то есть «столбцы», которые вы видите в консоли. Но вы хотите загружать их на основе «Вида» имени, которое является «таблицей», на которую вы ссылаетесь.

Вот решение о том, как извлечь все ключевые идентификаторы и их свойства из хранилища данных, используя облачную функцию HTTP trigger, запущенную в Node.js 8 среда.

  1. Создайте облачную функцию Google и выберите триггер HTTP.
  2. Выберите среду выполнения, которая будет Node.js 8
  3. В index.js замените весь код на этот код на GitHub.
  4. В package.json добавьте:
     {
      "name": "sample-http",
      "version": "0.0.1",
      "dependencies": {
        "@google-cloud/datastore": "^3.1.2"
      }
    }
  
  1. В разделе Функция для выполнения добавьте loadDataFromDatastore , поскольку это имя функции, которую мы хотим выполнить.

ПРИМЕЧАНИЕ: При этом все загруженные записи будут занесены в журналы Stackdriver облачной функции. Ответ для каждой записи представляет собой JSON, поэтому вам придется преобразовать ответ в объект JSON, чтобы получить нужные данные. Получите идею и соответствующим образом измените код.

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

1. Нет проблем, рад, что смог помочь