问题标签 [cloudflare-workers]

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 投票
2 回答
396 浏览

javascript - 在 cloudflare worker 中创建一堆异步子请求并在它们全部完成后返回?

我想将一个字符串数组传递给 Cloudflare 工作人员,然后让它遍历这些字符串并为每个字符串执行一个 GET,然后将 get 返回的 JSON 添加到工作人员返回给调用者的列表中。

一些伪代码:

我知道如何根据此SO帖子发出非阻塞请求。我无法解决的是:

  1. 如何仅在循环中的所有请求完成后才返回
  2. 使用什么样的线程安全数据结构,以便在每个请求完成时可以安全地将其结果添加到列表中。
0 投票
2 回答
800 浏览

caching - 通过 Cloudflare 缓存外部站点上的所有图像

这是我的情况:

我有一个在远程服务器上使用大量图像的 web 应用程序。我的 web 应用程序在 Cloudflare 后面,尽管托管图像的服务器不是……而且该服务器可能非常慢。每张图像有时可能需要大约 5 秒。

我想使用 Cloudflare 将请求代理到这个外部服务器,但也可以无限期地缓存它们,或者至少尽可能长地缓存它们。图像永远不会改变,所以我不介意它们有很长的缓存寿命。

这是我应该在工人中设置的东西吗?作为页面规则?或者只是不以这种方式使用 CLoudflare?

0 投票
1 回答
622 浏览

dns - Request to Cloudflare DNS from Cloudflare worker not returning the DNS result

I have a Cloudflare (CF) worker that I want to have make a few DNS requests using the CF DNS (https://developers.cloudflare.com/1.1.1.1/dns-over-https/json-format/).

So a pretty basic worker:

I have just hardcoded the DNS query at the moment to:

https://cloudflare-dns.com/dns-query?ct=application/dns-json&name=example.com&type=A

and I would expect that the JSON result I would get is:

however instead in results I get what appears to be the outcome of the websocket established as part of the fetch() (assuming I go around the loop once)

So my question is, what am I doing wrong here such that I am not getting the DNS JSON response from the 1.1.1.1 API?

0 投票
2 回答
3620 浏览

node.js - 将数据实时流式传输到 Big Query(使用 Node)的最佳方式是什么?

我想实时(或接近实时)将 HTTP 请求流式传输到 BigQuery。

理想情况下,我想使用一个工具,该工具提供一个端点以将 HTTP 请求流式传输到并允许我编写简单的 Node,这样:1. 我可以添加适当的 insertId,以便 BigQuery 可以在必要时对请求进行重复数据删除 2. 我可以批处理数据,所以我一次不会发送一行(这会导致不必要的 GCP 成本)

我曾尝试使用 AWS Lambdas 或 Google Cloud Functions,但在这些平台上解决此问题的必要设置远远超出了此处用例的需求。我假设许多开发人员都有同样的问题,并且必须有更好的解决方案。

0 投票
1 回答
1952 浏览

javascript - 如何使用 node.js 和 cloudflare worker 在现有的 HTML 响应中注入 javascript

我有一个指向 GitBook 的虚 URL。GitBook 不支持插入任意 javascript 片段。目前 GitBook 只有 4 个“集成”。

我可以通过我自己的 VM 服务器路由来完成此操作,但我有 CloudFlare,我想尝试工作人员。(在 CDN 边缘运行的 Javascript)。

CloudFlare 工作环境使标头注入非常容易,但是没有明显的方法可以做到这一点。

0 投票
1 回答
56 浏览

node.js - Nodejs URL路径取消引用路径名中的保留字符(有时)

这有点奇怪(节点 repl v8.15.0):

然后在我的 CloudFlare 工作人员中(使用service-worker-mock):

我猜它可能是一个不同的版本URL?反正我能控制吗?

0 投票
1 回答
1867 浏览

cookies - 在 cloudflare worker header.set('Set-Cookie' 函数的 'Set-Cookie' 标头中设置多个 cookie

我正在尝试使用 cloudfare 工作人员将 2 个 cookie 键/值对添加到响应中,然后再将其发送到客户端。

不幸的是,cloudflare 工作人员的所有文档都说要使用 response.headers.set('Set-Cookie',xxx) 函数来设置 cookie 值:

这只允许您设置一个 cookie 标头,如果调用两次只会覆盖现有的标头。

我已经尝试调用该函数两次,只有最后一个值进来:

我尝试在一个标头中传递 2 个 cookie,用逗号分隔,但只有一个进入:

我尝试传递 2 个 cookie 键/值对,但第一个键值设置为“1,val2=2”:

这些都不起作用。

我发现的唯一解决方法是将变量捆绑到一个变量中,然后在客户端使用 JS 解包并应用变量:

.. 然后在 js 文件中应用 2 个 cookie 值。显然这并不理想。

有没有人有幸通过 cloudflare 工作人员在一个响应标头中应用 2 个单独的 cookie?谢谢。

0 投票
1 回答
48 浏览

cloudflare - 在使用 Cloudflare 页面规则缓存之前验证响应

我创建了一个 Cloudflare 页面规则来缓存静态页面,如下所示:

一般是没有问题的,但是服务器多次返回错误,或者连接超时,Cloudflare 已经缓存了这个结果。如何在缓存页面之前测试有效响应?

0 投票
1 回答
921 浏览

cloudflare - 使用工作人员控制 cloudflare 源服务器

我正在尝试使用 cloudflare 工作人员根据请求的 IP 动态设置来源(因此我们可以在内部提供网站的测试版本)

我有这个

我不确定要设置什么。请求对象似乎没有任何合适的参数可以更改。

谢谢

0 投票
1 回答
311 浏览

javascript - 如何从 Cloudflare 工作人员内部发布到 GCP PubSub 主题

是否可以通过基本 HTTP 请求发布到 GCP PubSub 主题?我有一个 Cloudflare 工作人员,我想从中直接发布到某个主题。tls我最初尝试捆绑 NodeJS 模块,但由于服务器工作环境中不可用的依赖项(特别是),无法构建 webpack(通过 wrangler) 。

PubSub API 似乎不支持 API 密钥,我终其一生都无法找到使用 SDK 来使用服务帐户的方法。