Cloudflare Workers Cloudflare Workers提供了一个serverless执行环境,无需配置或维护基础架构即可创建全新的应用程序或扩充现有的应用程序。

1.开发部署 Wrangler是一个用于Cloudflare Workers功能开发、测试、部署的CLI工具

2.使用限制 Worker开发 Wordker底层运行环境跟Node.js大致相同,但是只能调用Cloudflare提供的API。

1.开发环境 安装Wrangler Cli,运行如下命令:

安装软件包

npm i -D wrangler

初始化开发目录

npx wrangler init

运行开发环境

npx wrangler dev 运行后,将自动跳转Cloudflare进行授权,然后运行开发服务器。

不想自己搭建的话,也可以直接使用Cloudflare后台的在线开发环境。

2.运行时API 关于Fetch Fetch 提供了对 Request 和 Response(以及其他与网络请求有关的)对象的通用定义。这将在未来更多需要它们的地方使用它们,无论是 service worker、Cache API,又或者是其他处理请求和响应的方式,甚至是任何一种需要你自己在程序中生成响应的方式(即使用计算机程序或者个人编程指令)。

全局的 fetch() 方法用于发起获取资源的请求。它返回一个 promise,这个 promise 会在请求响应后被 resolve,并传回 Response 对象。

var myImage = document.querySelector(‘img’); var myRequest = new Request(‘flowers.jpg’); fetch(myRequest).then(function(response) { return response.blob(); }).then(function(response) { var objectURL = URL.createObjectURL(response); myImage.src = objectURL; });

功能拓展 1.反代理ChatGPT接口 /* 监听请求事件 */ addEventListener(‘fetch’, event => { event.respondWith(fetchAndApply(event.request)); }) /**

  • 响应请求
  • @param request
  • @return {Promise<“success”|“error”>} / async function fetchAndApply(request) { let response = null; let method = request.method; //请求方法 let url = new URL(request.url); let url_hostname = url.hostname; url.protocol = ‘https:’; url.host = ‘api.openai.com’; let request_headers = request.headers; let new_request_headers = new Headers(request_headers); new_request_headers.set(‘Host’, url.host); new_request_headers.set(‘Referer’, url.protocol + ‘//’ + url_hostname); let original_response = await fetch(url.href, { method: method, headers: new_request_headers, body: request.body }) let original_response_clone = original_response.clone(); let original_text = null; let response_headers = original_response.headers; let new_response_headers = new Headers(response_headers); let status = original_response.status; new_response_headers.set(‘Cache-Control’, ‘no-store’); new_response_headers.set(‘access-control-allow-origin’, ‘’); new_response_headers.set(‘access-control-allow-credentials’, true); new_response_headers.delete(‘content-security-policy’); new_response_headers.delete(‘content-security-policy-report-only’); new_response_headers.delete(‘clear-site-data’); original_text = original_response_clone.body response = new Response(original_text, { status, headers: new_response_headers }) return response }
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。