我已经使用 cloudflare-worker 在 cloudflare 上创建了一个 api server'ish 环境,并且没有运行节点服务器(cloudflare-worker 几乎是无服务器事件处理程序服务)。它确实提供了处理任何子域调用的配置,就像 api 的工作方式一样。我使用了一个名为的包cf-worker-router
来执行此操作。我的云服务如下所示:
import { ApiError, ApiRedirect, DomainRouter, FetchRouter } from 'cf-worker-router';
const router = new FetchRouter();
// add the cloudflare event listener
addEventListener('fetch', (event) => {
router.onFetch(event);
});
router.route('/users', 'POST', async (event) => {
// automatically converts anything not of Response type to ApiResponse
return await event.request.text();
});
我所做的是创建一个对 url 的 POST 请求,并为请求提供了一些正文。我能够成功获取请求文本,但现在我不知道如何解析收到的文本。
当使用请求作为multipart/form-data
请求时,接收到的正文如下:
"----------------093590450792211419875705\r\n内容配置:表单数据;name=\"name\"\r \n\r\nJon Doe\r\n----------------------------093590450792211419875705--\r\n"
我尝试发送application/x-www-form-urlencoded
并且我的响应文本如下:
“名字=乔恩%20Doe”
和类似的application/json
请求:
"{\n\t\"name\": \"Jon Doe\"\n}"
由于 cloudflare 没有使用 nodejs 服务器,body-parser
所以不能在这里应用。该服务几乎是一个开放的 api,因此它需要处理各种请求内容类型。有什么方法可以识别和解码这些内容类型中的 strignified 内容为 javascript 中的有效对象?