如何在 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 检索所有密钥标识符及其属性的解决方案。
- 创建一个 Google Cloud Function 并选择 HTTP 触发器。
- 选择运行时间为Node.js8
- 在index.js中将所有代码替换为this GitHub code。
- 在package.json中添加:
{
"name": "sample-http",
"version": "0.0.1",
"dependencies": {
"@google-cloud/datastore": "^3.1.2"
}
}
- 在要执行的函数下添加
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.
我想按名称检索 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 检索所有密钥标识符及其属性的解决方案。
- 创建一个 Google Cloud Function 并选择 HTTP 触发器。
- 选择运行时间为Node.js8
- 在index.js中将所有代码替换为this GitHub code。
- 在package.json中添加:
{
"name": "sample-http",
"version": "0.0.1",
"dependencies": {
"@google-cloud/datastore": "^3.1.2"
}
}
- 在要执行的函数下添加
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.