Javascript POST请求的节点获取问题
在postman中,我可以成功地提出以下请求: 得到这样的回答: 现在,我想在node.js中的server.js文件中执行相同的请求: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)
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对象。