Как сохранить данные из движка приложения в хранилище данных Google Cloud javascript - PullRequest
0 голосов
/ 26 апреля 2020

Я новичок в GCP, и мне так сложно понять его документы. Я развернул свое веб-приложение на App Engine. Когда я запускаю свое приложение локально, я сохраняю некоторые данные в файле JSON, и это прекрасно. Теперь мне нужно сохранить тот JSON, который идет со стороны клиента куда-то в облаке Google.

На основании моих исследований мне нужно хранить данные в хранилище данных. Мне нужен четкий пример и объяснение, чтобы научиться хранить данные из App Engine в хранилище данных в GCP. В основном я ищу способ сохранить мой JSON, чтобы потом передать его другому приложению. Я ценю любую помощь или предложение.

 const port = process.env.PORT || 8000;
 app.use(express.static(__dirname + '/www'));

 app.listen(port);
 console.log('working on port '+ port);

 app.use(express.json({limit:'1mb'}));
 app.post('/api', (request, response) => {

     var ressult = JSON.stringify(request.body);

     //creating my JSON file
     fs.appendFile('Result.json', ressult +  "\n", (err) => { 

     if (err) throw err; 
 })     

});

1 Ответ

0 голосов
/ 04 мая 2020

Итак, прежде всего основы:

Для инициализации клиента вам понадобится что-то вроде следующего:

// Imports the Google Cloud client library
const {Datastore} = require('@google-cloud/datastore');

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

Затем для создания базового c объекта:

async function quickstart() {
  // The kind for the new entity
  const kind = 'Task';

  // The name/ID for the new entity
  const name = 'sampletask1';

  // The Cloud Datastore key for the new entity
  const taskKey = datastore.key([kind, name]);

  // Prepares the new entity
  const task = {
    key: taskKey,
    data: {
      description: 'Buy milk',
    },
  };

  // Saves the entity
  await datastore.save(task);
  console.log(`Saved ${task.key.name}: ${task.data.description}`);
}
quickstart();

Итак, теперь, когда вы можете создать базовый c объект, у вас есть различные варианты. Если объект JSON не слишком большой, вы можете поместить его в качестве значения в сущности (сохранить его в виде текста)

Или лучший способ - сохранить его в виде массива, используя что-то вроде этого:

  testArrayValue() {
    // [START datastore_array_value]
    const task = {
      tags: ['fun', 'programming'],
      collaborators: ['alice', 'bob'],
    };
    // [END datastore_array_value]

    return this.datastore.save({
      key: this.incompleteKey,
      data: task,
    });
  }

В зависимости от вашего JSON вы, возможно, даже захотите создать вложенные массивы, но логика c будет одинаковой.

Вместо этого вы также можете использовать Cloud Storage и просто обработать JSON файл как объект. Так что вам нужно будет сохранить его в каталоге / tmp GAE, загрузить его в корзину. Затем, с другой стороны, загрузите его в каталог / tmp этого приложения и обработайте как JSON файл. Вот основы того, как начать работу с Cloud Storage

...