【问题标题】:My sent data using axios is returned in config, not data我使用 axios 发送的数据在配置中返回,而不是数据
【发布时间】:2020-02-04 00:47:45
【问题描述】:

我正在 NextJS NodeJS 和 Express 上构建我的 Web 应用程序,我在 localhost 3000 上运行两台服务器,用于 next 和 9000 用于 express。

我有一个带有两个输入字段的表单,我正在使用 axios post 将状态发送到带有数据的 url,在服务器端我正在接收该请求并将接收到的相同数据作为响应发送回。

我从服务器收到带有数据的响应:成功和我在 config.data 中的数据

为什么我的数据在配置数据中,如何从这个 JSON 中取出它,以便将其传递给变量。

至于从 config.data 中获取数据,我尝试过 for 循环,但它们要么将 56 个数字的 56 个元素推送到空数组,要么什么都不做。

客户端:

state = {
  bank_name: '',
  account_number: ''
}

...

onSubmit = (e) => {
  e.preventDefault()

  axios.post('http://localhost:9000/api/bank', {
    bankName: this.state.bank_name,
    accNumber: this.state.account_number
   })
    .then(res => {
      console.log(res)
    }).catch(err => console.log(err))
  }

服务器端:

router.post('/', (req, res) => {
    const {reqData} = req;
    res.send(reqData);
})

来自客户端的控制台日志 (console.log(res)):

{
  config: {
    url: "http://localhost:9000/api/bank",
    method: "post",
    data: '{"bankName":"some new bank","accNumber":"39276542934235"}'
  },
  data: "success",
  headers: "...",
  request: "...",
  status: 200,
  statusText: "OK",
  __proto__: Object
}
...

当我以 res.config.data.bankName 为目标时,我得到undefined

我认为这与服务器响应保持原样有关,或者首先没有解析服务器接收到的数据,或者是由于承诺。

任何意见都会有所帮助,谢谢

【问题讨论】:

    标签: javascript node.js express axios next.js


    【解决方案1】:

    res.config.datastring 所以先解析它JSON.parse(res.config.data) 然后访问bankName

    您还必须在express 结尾处使用body-parser。所以post 数据驻留在req.body 中,您应该将其发回而不是整个req IMO。

    快递:

    router.post('/', (req, res) => {
        const reqData = req.body;
        return res.send(reqData);
    });
    

    Axios:(返回的数据应该在res.data

      axios.post('http://localhost:9000/api/bank', {
        bankName: this.state.bank_name,
        accNumber: this.state.account_number
       })
        .then(res => {
          console.log(res.data);
        }).catch(err => console.log(err))
      }
    

    【讨论】:

    • 是的,成功了,我的数据现在是响应数据。我使用了 body-parser,但从 express 4.16 中发现了这一点。他们再次将其包含在快递中。谢谢!
    猜你喜欢
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 2018-12-24
    相关资源
    最近更新 更多