如何在 Google 云函数上使用 Node.js 按名称 return 整个数据存储 table

How to return an entire Datastore table by name using Node.js on a Google Cloud Function

我想按名称检索 table(包含所有行)。我想在正文 {"table": user} 上使用类似这样的 HTTP 请求。

尝试过此代码但没有成功:

'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); });


}

Google Datastore 是一个使用实体而非表的 NoSQL 数据库。您想要的是加载数据存储中 "key identifiers" 的所有 "records" 及其所有 "properties",即您在控制台中看到的 "columns"。但是您想根据 "Kind" 名称加载它们,也就是您所指的 "table"。

这里是关于如何在 Node.js 8 环境中使用 HTTP 触发器 Cloud Function 运行 从 Datastore 检索所有密钥标识符及其属性的解决方案。

  1. 创建一个 Google Cloud Function 并选择 HTTP 触发器。
  2. 选择运行时间为Node.js8
  3. 在index.js中将所有代码替换为this GitHub code
  4. 在package.json中添加:
    {
      "name": "sample-http",
      "version": "0.0.1",
      "dependencies": {
        "@google-cloud/datastore": "^3.1.2"
      }
    }
  1. 要执行的函数下添加loadDataFromDatastore,因为这是我们要执行的函数的名称。

NOTE: This will log all the loaded records into the Stackdriver logs of the Cloud Function. The response for each record is a JSON, therefore you will have to convert the response to a JSON object to get the data you want. Get the idea and modify the code accordingly.