Javascript POST请求的节点获取问题

Javascript POST请求的节点获取问题,javascript,node.js,node-fetch,Javascript,Node.js,Node Fetch,在postman中,我可以成功地提出以下请求: 得到这样的回答: 现在,我想在node.js中的server.js文件中执行相同的请求: const fetch = require('node-fetch') const SEN_URL = "http://www.sentiment140.com/api/bulkClassifyJson" // URL of sentiment analysis app.get('/api/sentimenttest', async (req, res)

在postman中,我可以成功地提出以下请求:

得到这样的回答:

现在,我想在node.js中的server.js文件中执行相同的请求:

const fetch = require('node-fetch')
const SEN_URL =  "http://www.sentiment140.com/api/bulkClassifyJson" // URL of sentiment analysis
app.get('/api/sentimenttest', async (req, res) => {
  try{
    var sentiments = await fetch(SEN_URL, {method: "POST", body: {"data": [{"text": "I love you"}, {"text": "I hate you"}]}})
    console.log(sentiments)
    res.send(sentiments)
  }catch(error){
    console.log(error)
  }
})
这不管用。以下是当我转到localhost:5000/api/Test时浏览器中显示的内容:

{"size":0,"timeout":0}
下面是控制台输出:

 Response {
   size: 0,
   timeout: 0,
   [Symbol(Body internals)]: 
    { body: 
       PassThrough {
         _readableState: [ReadableState],
         readable: true,
         _events: [Object],
         _eventsCount: 2,
         _maxListeners: undefined,
         _writableState: [WritableState],
         writable: false,
         allowHalfOpen: true,
         _transformState: [Object] },
      disturbed: false,
      error: null },
   [Symbol(Response internals)]: 
    { url: 'http://www.sentiment140.com/api/bulkClassifyJson',
      status: 200,
      statusText: 'OK',
      headers: Headers { [Symbol(map)]: [Object] } } }
由于请求在postman中运行良好,我认为问题在于节点获取,或者我使用它的方式,特别是
body
参数如何在
fetch()
调用中提供。API调用似乎不包含我希望它包含的内容,因为在浏览器中它显示了
“size”:0


我该怎么做才能解决这个问题呢?

您需要等待json。

var sentiments = await fetch(SEN_URL, {method: "POST", body: {"data": [{"text": "I love you"}, {"text": "I hate you"}]}})
//Here 
await sentiments.json()
您还可以使用
JSON.stringify()
为body发出请求。而且管理js对象会更容易。像这样:

var data = {data: [{text: "I love you"}, {text: "I hate you"}]};
var body = JSON.stringify(data);
var sentiments = await fetch(SEN_URL, { method: "POST", body: body });

非常清楚地表明,您必须至少
JSON.stringify()
正文数据或以各种其他方式传递它。他可以而且必须使用
JSON.stringify
,因为模块在POST请求中发送JSON时需要它。第二个wait是您答案的要点和第一个参数,这真的有必要吗?这只是关于JSON.stringify()的。@marekful,实际上,这也是必要的,删除它会导致服务器返回一个空的JSON对象。