问题标签 [gcloud-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 回答
49 浏览

gcloud-node - gcloud-node 会在 /tmp 中留下文件吗?

我一直在使用 gcloud-node 将文件上传到 GC 存储,但我注意到我的 /tmp 目录中有大量这些残余:

/tmp/3a1a48fa- 3d83-4996-8e88-32bc01c36e86
/tmp/3a1a48fa-3d83-4996-8e88-32bc01c36e86/.config
/tmp/3a1a48fa-3d83-4996-8e88-32bc01c36e86/.config/dmpfa3a1
-4996-8e88-32bc01c36e86/.config/configstore/gcs-resumable-upload.json
...

这是正常的吗?仅适用于大型上传文件吗?有没有办法配置这些文件去哪个目录(如果必须创建它们?)

谢谢!

0 投票
0 回答
372 浏览

email - 如何在节点后端获取 gmail 新电子邮件推送通知?

我正在开发节点应用程序,当新电子邮件出现在 GMAIL 中时,它需要处理一些数据。我知道如何为收件箱上的所有操作设置发布/订阅消息,但我想知道是否有可能只收到有关新电子邮件的通知。

不希望有其他请求检查我们是否有新电子邮件或用户删除了电子邮件或进行了任何其他更改。

任何信息将不胜感激。

0 投票
1 回答
597 浏览

node.js - 谷歌云平台文件通过 gcloud 到节点服务器

我在 Google Cloud Platform 上有一个存储桶,其中我的应用程序的一部分添加了具有唯一名称(无扩展名)的小文本文件。

第二个应用程序需要检索单个文本文件(一次仅一个)以插入到模板中。

我找不到正确的 api 调用。

根据需要进行配置:

保存到存储桶效果很好:

以下似乎合乎逻辑,但仅返回元数据而不是回调中使用的实际文件;

可能并不奇怪这不起作用,因为它实际上不在官方文档中,但话又说回来,一个简单的 asnyc 函数也不是返回您要求的文档。

0 投票
4 回答
3966 浏览

node.js - 使用 node.js 从谷歌云存储中删除多个对象

我需要从谷歌云存储中删除多个对象。我一次删除了一个对象。

这是我的代码:

但我需要同时删除多个对象。有没有可能?

0 投票
1 回答
893 浏览

node.js - 谷歌数据存储中的节点分页

我在使用 Google Datastore 进行分页时遇到问题。我有一个没有限制的查询有几百个结果。我想检索 5 个,将它们发回给用户,如果用户想要更多,他们将检索下一个 5。

按照文档,我创建了查询:

然后我运行此查询以获得前 5 个结果:

这是回调函数:

问题是res =在控制台中打印无限次而没有结果。我不确定我做错了什么。我想发生的是。

我一直在看这个文档: http: //googlecloudplatform.github.io/gcloud-node/#/docs/v0.30.2/datastore/query ?method=autoPaginate 。

我怎样才能完成这个简单的分页?

0 投票
5 回答
16863 浏览

node.js - 将缓冲区上传到谷歌云存储

我正在尝试将缓冲区(从表单上传的文件)保存到谷歌云存储,但谷歌节点 SDK 似乎只允许上传具有给定路径的文件(读/写流)。

这是我用于 AWS (S3) 的 - Google 节点 SDK 中还有什么类似的吗?:

到目前为止,我发现这样做的唯一方法是将缓冲区写入磁盘,使用 SDK 上传文件(指定新文件的路径),然后在成功上传后删除文件 - 这样做的缺点是整个过程明显变慢,似乎无法使用谷歌存储。是否有任何解决方法/上传缓冲区的方法?

0 投票
1 回答
887 浏览

node.js - GCloud VM 实例未启动 Node 应用程序

我尝试在 localhost 和 google VM 上运行我的节点应用程序。如果我登录到 Google 云 VM 的 putty\ssh 并启动节点应用程序(从 /opt/app 文件夹),该应用程序运行良好。我可以登录浏览器并通过 {external ip:port number} 访问应用程序。

如果我只是重置(或停止\启动)VM,它不会启动应用程序。我提供了一个启动脚本来启动应用程序,如下文所述:

https://cloud.google.com/nodejs/getting-started/run-on-compute-engine#download_app

当 VM 尝试运行启动脚本文件时,我可以看到以下内容。这实际上是因为缺少依赖关系吗?因为如果 package.json 丢失,当我尝试手动运行它时它应该会失败。

包.json

任何帮助,将不胜感激 ?它还在“主管”日志中给出错误。

0 投票
0 回答
84 浏览

google-app-engine - 模型数据存储应用程序

我正在寻找如何创建一个有效的模型来满足我在下面提出的要求。我曾尝试使用 gcloud-node,但注意到它在读取一致性、引用等方面存在限制。我更愿意将其编写为 nodejs,但只要它可以改进我的模型,就可以使用 java 或 python 编写。我正在围绕将于 ​​7 月 1 日推出的新定价模式进行构建。

我的应用程序包含一个封闭的电子邮件系统。本质上,发生的事情是用户注册到该站点。这些用户可以交朋友。然后他们可以互相发送电子邮件。

应用程序的组件:

用户 - 无限数量的用户可以加入。

好友 - 一个用户可以拥有 200 个已确认好友和 100 个待处理好友请求。检索好友列表时,它应该显示好友的姓名。(我还需要接收朋友的 ID,以便我可以在客户端使用它来创建电子邮件)。

电子邮件 - 用户可以向他们的朋友发送电子邮件,也可以接收来自朋友的电子邮件。然后,用户可以独立查看所有已发送的电子邮件(发件箱)和所有收到的电子邮件(收件箱)。他们还可以按最新查看自己和朋友订单之间发送的电子邮件。电子邮件应显示发件人和收件人姓名。阅读电子邮件后,需要将其标记为已读。

我的模型看起来像这样,但正如您所见,它们效率低下。

数据存储种类:

申请程序:

注册- 获取操作以查看是否存在使用此电子邮件的用户。如果不插入密钥。

登录- 获取基于电子邮件获取用户的操作。如果存在,则从实体中检索 hash_password 并与用户的输入进行比较。

发送好友请求- 好友数据将为每个关系写入两次。然后使用friend1上的索引和status上的索引,我将查询所有朋友的用户并仅过滤那些“待定”的朋友。然后我将计算这些朋友,看看他们是否超过 X。我将为其他用户再次执行此操作。如果他们都没有超过挂起的限制,我将插入好友请求。这需要在事务中运行。

接受好友请求- 好友数据将为每个关系写入两次。然后使用friend1 上的索引和status 上的索引,我将查询一个用户的所有朋友并仅过滤那些未决的朋友。然后我将计算这些朋友,看看他们是否超过 X。我将为其他用户再次执行此操作。如果它们都没有超过挂起的限制,我会将两个实体的状态更改为接受为交易。

显示已确认的好友- 好友数据将为每个关系写入两次。然后使用friend1上的索引和status上的索引,我将查询所有朋友的用户并仅过滤那些被接受的朋友。不知道我将如何显示朋友的名字(例如,如果用户更改了他们的名字会发生什么,这需要反映在所有朋友关系和电子邮件中!)。

显示待处理的朋友- 朋友数据将为每个关系写入两次。然后使用friend1 上的索引和status 上的索引,我将查询一个用户的所有朋友并仅过滤那些未决的朋友。不知道我将如何显示朋友的名字(例如,如果用户更改了他们的名字会发生什么,这需要反映在所有朋友关系和电子邮件中!)。

查看已发送的电子邮件- 使用 from 属性上的索引,我将查询以按 created_date 排序的时间(最新的优先)一次从用户 5 获取所有已发送的电子邮件。(例如,如果用户更改了他们的名字会发生什么,这需要反映在所有的朋友关系和电子邮件中!)。

查看收到的电子邮件- 使用 to 属性上的索引,我将查询一次将所有收到的电子邮件发送给用户 5,按 created_date 排序(最新的优先)。当看到一封电子邮件时,它会将实体 has_seen 属性更新为 true。(例如,如果用户更改了他们的名字会发生什么,这需要反映在所有的朋友关系和电子邮件中!)。

查看 2 个用户之间的电子邮件- 使用基于 [lower_lexicographic_email]:[higher_lexicographic_email] 的mutual_id 上的索引来查询相互电子邮件。按最新订购,一次 5 个。(例如,如果用户更改了他们的名字会发生什么,这需要反映在所有的朋友关系和电子邮件中!)。

创建电子邮件- 使用friend1 和状态索引我将确认用户是朋友。如果他们是朋友,我会插入一封电子邮件。

0 投票
1 回答
136 浏览

node.js - 如何对实体组执行这些操作

在我的应用程序中,用户有朋友。用户可以发送发送请求并确认好友(由 status 属性标记)并可以删除好友。一个用户只能有 X 个朋友和 X 个待处理的朋友。为了存储它,我有一个不存在的 Kind ,然后有一个名为 Friends 的子实体。看起来像这样:

朋友们

密钥包含一个确实存在的祖先,id 是用户的用户名。子实体将是该用户的所有朋友。因此,每个友谊将被存储两次,一次用于friend1,一次用于friend2。它们位于实体组中,因此它们可以保持高度一致并且我可以执行事务(例如,如果用户添加了一个朋友,它需要写给请求友谊的用户和被请求的朋友)。我需要更多操作,但我正在尝试了解如何执行以下操作,然后我可以将这些知识应用于我需要的其他操作:

  • 在创建日期之前获取所有用户的朋友订单(只需要朋友的用户名)。

  • 获取用户所有已确认的好友(状态 = '已确认')。

在以下位置阅读文档:https : //googlecloudplatform.github.io/gcloud-node/#/docs/v0.30.3/datastore/query?method=select 我很困惑如何查询实体组。对于其中的几个查询,我需要应用一个属性过滤器和一个祖先过滤器,它看起来像但不确定如何?如果我只需要查询一个非实体组,则文档非常有用。

0 投票
1 回答
49 浏览

node.js - 捕获 gcloud-node 事务中的错误

我正在尝试捕获交易错误。我有以下代码应该会导致错误,因为这些实体已经存在,但控制台中没有输出任何内容: