问题标签 [google-cloud-node]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
784 浏览

google-app-engine - 在事务中获取实体的 id

我有一个数据存储事务,我在其中创建一个实体(用户),让数据存储为我生成 ID。

然后我想使用该 ID,以便我可以创建另一个实体(另一种)。

虽然使用常规数据存储“保存”api 可以做到这一点:

但是,在使用事务时这似乎是不可能的:

上面的输出“无法读取未定义的'then'”,即使文档中没有列出回调,我还是尝试了。

使用事务创建/保存实体时,如何检索该实体的自动生成 ID?

0 投票
1 回答
114 浏览

google-cloud-platform - 成功上传后,Google Cloud Storage 会删除实体/用户

几周以来,我一直在开发 Express/Firebase 应用程序。一切正常,直到我遇到以下问题:

TypeError: firebase.storage is not a function

快速搜索让我找到了TypeError: firebase.storage is not a function。因此,使用那里收集的解决方案,我成功配置@google-cloud/storage了。但后来,我遇到了:

Caller does not have storage.objects.create access to bucket example.appspot.com

经过一番谷歌搜索后,我了解到我必须手动将我的 firebase-admin 用户添加到https://console.cloud.google.com/storage/example.appspot.com上的存储桶中

在此处输入图像描述

完成后,我测试以下内容:

这完美地工作。当我停止 Express 应用程序并重新运行它以尝试再次上传时出现问题,这再次导致Caller does not have...错误。检查存储桶权限,我看到我之前添加的用户现在已经消失了:

在此处输入图像描述

我不知道我是否在这里遗漏了某些东西、@google-cloud/storage包中的错误或其他地方的错误。有任何想法吗?

0 投票
1 回答
742 浏览

javascript - 使用 google-cloud-node 执行可恢复上传

此代码适用于正常上传,但我想知道可恢复上传如何工作,例如,当用户在大型上传过程中失去连接时。在 writeStream 选项中将 resumable 设置为 true 是唯一必要的吗?

我已经阅读了这个关于执行可恢复上传的链接,但似乎createWriteStream函数应该封装这种行为。

我已经尝试通过在上传过程中关闭我的 wifi 来测试这一点,但是一旦我恢复上传完成上传所需的时间与不间断上传相同,这就是为什么我不确定这是否真的有效.

任何帮助或解释表示赞赏,如果我能澄清任何事情,请告诉我。

0 投票
1 回答
362 浏览

google-bigquery - Google Bigquery 错误“字段的多个定义”。

我正在使用谷歌云节点库将 JSON 记录推送到 bigquery 表。

我收到很多带有“字段的多个定义”的消息的 PartialFailureError。

这个错误是什么意思。我查看了行数据并将其与架构进行了比较,并且在重复字段或重复条目方面没有看到任何奇怪的东西。

0 投票
2 回答
2261 浏览

node.js - 在nodejs中单元测试/模拟谷歌数据存储

我想对上面的代码进行单元测试,但我不知道如何模拟/存根谷歌云数据存储对象/方法。例如,我想模拟/存根 datastore.createQuery('Test'),但不知道如何。

0 投票
1 回答
84 浏览

google-cloud-pubsub - Google Cloud Pub/Sub 节点库错误解析

我正在尝试使用其节点客户端库处理从 Google Cloud Pub/Sub api 返回的错误响应。据我所知,如果您直接使用他们的 REST API(即不通过客户端库),他们会返回常见的 HTTP 错误代码:

https://cloud.google.com/pubsub/docs/reference/error-codes

但是,他们的客户端库返回不符合 http 状态代码约定的 RPC 样式错误。

我有一个工作人员正在处理这些响应,并期望响应符合标准的 http 响应约定。有谁知道是否有办法拦截客户端正在处理的实际 HTTP 响应并从中提取状态码?或者,是否有文档列出节点客户端可以返回的潜在 RPC 错误,以便我可以设置从它们到 http 代码的映射?

谢谢!

0 投票
2 回答
1554 浏览

credentials - 无法访问 Dialogflow 应用程序的正确应用程序默认凭据

我创建了一个带有并发 gcloud 应用程序的 Dialogflow 代理。但是,当我尝试将其集成到 Node.js 后端时,它似乎访问了错误的应用程序默认凭据。

我可以确认它正在验证身份验证是否成功,因为它在我运行此代码时控制台记录了正确的项目 ID (diagnosistest-56e81):

但是,当我尝试连接 dialogflow 时,出现错误。

连接到对话流的代码:

我收到的错误消息:

奇怪的是,我的项目编号是 889800549397 而不是 764086051850。所以它似乎没有访问正确的凭据。

到目前为止我已经尝试过:

  1. 通过创建新的 Dialogflow 服务帐户密钥并将导出设置为 json 密钥文件export GOOGLE_APPLICATION_CREDENTIALS='/Users/Joseph/workspace/finddoc/DiagnosisTest-cred.json
  2. 删除application_default_credentials.json文件./config/gcloud/夹中的文件。

当我这样做时,我收到一条不同的错误消息:

0 投票
1 回答
528 浏览

node.js - LIKE 语句中查询参数导致响应慢

我正在尝试使用 node.js 客户端库使用查询参数查询 Google spanner。但是,使用查询参数的响应比没有查询参数的响应要慢得多。查询有 LIKE(forward match) 语句。我找不到将查询参数与 LIKE 语句一起使用的推荐方法。

另外,我用equal语句进行了测试,带参数的查询和不带参数的查询没有区别。

表有超过 2000 万行。实例是 1 个节点。

有什么解决办法吗?或者这是谷歌扳手的错误吗?

部分Schema(实际40多列):

指数:

测试代码:

谢谢您的帮助!

0 投票
1 回答
84 浏览

node.js - 如何在 Google Cloud for Node js 项目上上传 HTML 内容?

我是 Google Cloud 的新手,我想使用 Node js 构建 1 个网站。现在我只想在 Google Cloud 上上传我的 HTML 模板,这样我就可以使用 URL 只看到项目的 HTML 部分,感谢任何帮助。

下面是 app.yalm 文件的内容

0 投票
1 回答
1428 浏览

node.js - 我需要在 Google Cloud Datastore 中使用什么索引来根据 ID 和其他属性进行过滤?

我使用 Google Cloud Datastore 来存储由 Datastore 生成的 ID 作为主键的实体。此外,在此示例中,我为每个实体存储了其他属性owner

Google Cloud Datastore 控制台中的实体如下所示:

然后我想根据key (id)和过滤实体owner

为此,我知道我需要一个复合索引才能同时过滤字段(id)和所有者。所以我使用以下index.yaml文件创建了一个复合索引:

该索引显示在云控制台中,如果我使用云控制台 UI 过滤这两个字段,它会过滤表中的正确实体。我在那里做的过滤器是:

  • 密钥与以下内容一样大:key(job,5657437197565952)
  • 所有者等于字符串:5634472569470976

但是,当我尝试使用以下代码通过 Google 使用 Node.js 库检索此实体时,我没有得到任何结果:

entities是空的,如果字符串化,则val如下所示:

我还尝试使用名称id而不是创建另一个索引,__key__但没有运气。

我现在的问题是:我需要什么复合索引才能在两个字段上执行此过滤器,以便 NodeJS 代码也正确检索实体?