#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 среда.
- Создайте облачную функцию Google и выберите триггер HTTP.
- Выберите среду выполнения, которая будет Node.js 8
- В index.js замените весь код на этот код на GitHub.
- В package.json добавьте:
{
"name": "sample-http",
"version": "0.0.1",
"dependencies": {
"@google-cloud/datastore": "^3.1.2"
}
}
- В разделе Функция для выполнения добавьте
loadDataFromDatastore
, поскольку это имя функции, которую мы хотим выполнить.
ПРИМЕЧАНИЕ: При этом все загруженные записи будут занесены в журналы Stackdriver облачной функции. Ответ для каждой записи представляет собой JSON, поэтому вам придется преобразовать ответ в объект JSON, чтобы получить нужные данные. Получите идею и соответствующим образом измените код.
Комментарии:
1. Нет проблем, рад, что смог помочь