Как изменить тело запроса - PullRequest
0 голосов
/ 09 марта 2019

Я отправляю почтовый запрос работникам. Содержание тела сообщения.

{
    "name": "value",
    "name2": "value2"
}

если name2 = value2, я хочу изменить его:

{
    "name": "value",
    "name2": "NewValue"
}

Я использую этот скрипт.

addEventListener("fetch", event => {
  event.respondWith(handleRequest(event.request));
});
async function handleRequest(r) {
  return new Response(r.body, {
    headers: {
      "Content-Type": "application/json",
      corsHeaders
    }
  })
}

Если я json.parse (r.body), это не сработает. как я могу это сделать? Я слышал, что r.body - это ReadableStream, так как его изменить. Пожалуйста помоги. Благодаря.

1 Ответ

2 голосов
/ 11 марта 2019

С Документы MDN :

request.json().then(function(data) {
  // do something with your data
});

Это должно помочь вам начать работу:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  let requestJSON = await request.json()

  // your logic here

  return await fetch(request, {body: JSON.stringify(requestJSON)})
}

Возможно, вы захотите ограничить разбор JSON запросами, которые удовлетворяютследующие условия:

(request.method === "POST" && request.headers.get ("Content-Type") === "application / json")

...