如何找到req.body里面的内容类型?

How to find the type of content inside req.body?

根据 https://developer.mozilla.org/en-US/docs/Web/API/Request/Request,body 的类型可以是以下任一类型:

  1. ArrayBuffer

  2. Blob

  3. formData

  4. JSON

  5. 文本

有没有办法让接收方知道它是什么类型?我问的原因是因为我从第 3 方收到 POST 消息,其中 req.body 为空。

// my code
console.info("Headers: ", req.headers); // shows headers
console.log("Data: ", req.body); // shows nothing

然而,经过进一步检查,我似乎需要按如下方式处理数据(因为它使用 ReadableStream):

   // code from a 3rd party library
   req.on('data', function (chunk) {
       data += chunk;
   });

   req.on('end', function () {
       var messageData = JSON.parse(data);
       console.log("Data: ", messageData); //shows data
    }

可以 自己做,但大多数人使用 express and the Body Parser 库来避免加载大量样板代码来为他们进行解析。