我正在尝试从运行在GAE上的NodeJs服务器检索作为Entity存储在Google Cloud Datastore中的服务的Api密钥,但没有成功。 我找不到任何有用的文档,有人可以帮助我了解如何检索实体吗? 预先谢谢你
我的无效代码:
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);
答案 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 的属性,每个属性可以具有一个或多个值。 同类实体不 需要具有相同的属性,以及给定实体的值 属性并不需要全部具有相同的数据类型。 (如有必要, 应用程序可以自己建立并实施此类限制 数据模型。)