【问题标题】:Get Google Datastore entity using NodeJs使用 NodeJs 获取 Google Datastore 实体
【发布时间】:2019-08-07 10:23:32
【问题描述】:

我尝试从运行在 GAE 上的 NodeJs 服务器检索我的 Api 密钥,以获取存储为 Google Cloud 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);

【问题讨论】:

  • “不工作”是什么意思?
  • @DanCornilescu 我不明白我应该从 ds.get() 接收哪种类型的结构,我目前找不到任何有用的例子,如果我 console.log 的结果get() 我看到'承诺 { }'

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


【解决方案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 中处于 Datastore 模式的数据对象称为 实体。一个实体有一个或多个命名的属性,每个属性可以有一个或多个值。 同类实体不 需要具有相同的属性,以及给定实体的值 属性不必都是相同的数据类型。 (如有必要, 应用程序可以自行建立和执行此类限制 数据模型。)

【讨论】:

  • 好的,谢谢,但是我应该如何构造返回的实体对象呢?我还不清楚谢谢你的帮助
  • 好吧,我现在可以让它工作了,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2018-09-27
  • 2021-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多