使用NodeJs获取Google Datastore实体

时间:2019-03-16 14:27:59

标签: node.js google-app-engine google-cloud-platform google-cloud-datastore

我正在尝试从运行在GAE上的NodeJs服务器检索作为Entity存储在Google Cloud Datastore中的服务的Api密钥,但没有成功。 我找不到任何有用的文档,有人可以帮助我了解如何检索实体吗? 预先谢谢你

My Entity on Datastore

我的无效代码:

const {Datastore} = require('@google-cloud/datastore');
const projectId = 'abcdefghi';
const ds = new Datastore({
  projectId: projectId,
});
const keyName = 'UNSPLASH_KEY';
const kind = 'Strings';
const stringKey = ds.key([kind, keyName]);

var appkey = 'not set';

var entity  = {
key: stringKey,
value: appkey,
};

entity = ds.get(stringKey);

1 个答案:

答案 0 :(得分:1)

您获得的Promise对象表明.get()函数是异步函数,代表函数执行的最终完成(或失败),而不是结果。

要查看函数执行的实际结果(当然,如果成功了),则需要使用await operator

entity = await ds.get(stringKey);

这在Retrieving an entity示例中显示:

const [entity] = await datastore.get(taskKey);

关于结构-结果是一个字典,其中包含每个实体属性的条目。您可以在控制台中手动将属性添加到实体,然后在下次获取实体时会在结果中看到它。来自Entities, Properties, and Keys(重点是我):

  

Cloud Firestore中“数据存储”模式下的数据对象称为   实体。一个实体具有一个或多个名为 properties 的属性,每个属性可以具有一个或多个值。 同类实体不   需要具有相同的属性,以及给定实体的值   属性并不需要全部具有相同的数据类型。 (如有必要,   应用程序可以自己建立并实施此类限制   数据模型。)