【问题标题】:Cant read post from Fetch in node无法从节点中的 Fetch 读取帖子
【发布时间】:2018-02-25 04:13:07
【问题描述】:

我将数据 {id: "abc123", text: "sometext"} 发布到节点 API。从带有action 调用的组件发布:

export function addTextToAPI(inputData) {
    return(dispatch) => {
        console.log(inputData),
        dispatch(addText(inputData))
         fetch(myapi, { 
            headers: {
               'Accept': 'application/json',
               'Content-Type': 'application/json'
            },
            method: 'POST',
            data:  inputData
      })
        .then(res => res.json())
    }
}

console.log(inputData) 是{id: "abc123", text: "sometext"}

节点:

var express    = require('express');
var bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.json());

app.post('/addtest', (req, res) => {

    console.log(req.body);        // <= returns blank object {}

    console.log(req.body.data);   // <= returns undefined

    console.log(req.query);       // <= returns blank object {}

    console.log("test added");      

});


app.listen(3000);

我希望能够阅读req 中的inputData。我怎么做?我希望能够阅读req 中的inputData。我该怎么做?

【问题讨论】:

  • 我也试过JSON.stringify(inputdata),但还是不行。
  • 你的内容类型请求头是什么?
  • @Phix .. 更新了有问题的 fetch。请看一看。

标签: node.js reactjs redux fetch-api


【解决方案1】:

要发布数据,您需要传入 body 参数以获取。

这应该可行:

export function addTextToAPI(inputData) {
    return(dispatch) => {
        console.log(inputData),
        dispatch(addText(inputData))
         fetch(myapi, { 
            headers: {
               'Accept': 'application/json',
               'Content-Type': 'application/json'
            },
            method: 'POST',
            body: JSON.stringify(inputData)
      })
        .then(res => res.json())
    }
}

【讨论】:

  • 传递body 不起作用。现在我什至没有从节点获得任何console logs。改回data 控制台日志正在工作。我通过body 根本不调用节点。
  • 尝试JSON.stringify ing inputData 并将其作为正文传递
  • 成功了! JSON.stringify 成功了。为什么我需要加body,却不能像其他param一样通过?
  • 这是在 fetch spec 中,这意味着它就是 api 的设计方式 - 你必须传递一个 body
猜你喜欢
  • 2017-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
相关资源
最近更新 更多