Не могу прочитать текст запроса, но могу его распечатать - PullRequest
0 голосов
/ 03 августа 2020

Я рву волосы. По запросу http я могу напечатать объект body, но не могу получить доступ к его содержимому.

Итак, я отправляю такой запрос из Интернета:

  return fetch('https:xxxxxxx/xxxx', {
            method: 'post',
            body: JSON.stringify(saleObject),
            headers: {
              'Accept': 'application/json',
              'contentType':"application/json",
               'dataType':"json",
            }
          }).then(function(res) {
            return res.json();
          }).then(function(data) {
            return data.orderID;  
          });
        }

На моем сервере (nodejs express Firebase), я пытаюсь прочитать это несколькими способами:

exports.payPalIntent = functions.https.onRequest(async(req, res) => {
return cors(req, res, async () => {
 
   console.log("req.body",req.body);  //this print AN OBJECT, A REAL OBJECT NOT A STRING
   console.log("req address",req.body.address); //=undefined, there is address property inside which

   return res.send(200);
 });

Итак, первый напечатает это:

req.body {"address":{"city":"some city","zip":"345334","area":"USA","street":"Hai 13", ........

Второй говорит Cannot read property 'address' of undefined

Конечно, я пробовал также JSON.stringify(req.body), который печатает строковый объект, к которому я не могу получить доступ.

Как получить доступ к этому объекту?

1 Ответ

1 голос
/ 03 августа 2020

JSON.stringify превращает объект JavaScript в строку JSON. У вас уже есть строка JSON, и вы хотите преобразовать ее в объект JavaScript, поэтому используйте обратное: JSON.parse(req.body). Тогда вы сможете получить доступ к свойствам с помощью оператора точки.

...