无法访问最初作为JSON对象发送的字符串(即[object Object])内的数据

时间:2018-03-22 02:02:31

标签: json node.js express axios

我正在使用axios将JSON对象作为参数发送到我的api。在它发布请求之前,我的数据作为JSON对象开始。在服务器端,当我console.log(req.params)时,数据被返回

[object Object]

当我使用typeof时,它返回了一个字符串。然后我开始使用JSON.parse()。但是,当我使用它时,它返回了一个错误

  

SyntaxError:位置1的JSON中的意外标记o

我寻找解决方案,但我尝试的任何东西似乎都没有用。现在我想我正在错误地将数据发送到服务器。

这是我使用axios的帖子请求:

createMedia: async function(mediaData) {
    console.log("SAVING MEDIA OBJECT");
        console.log(typeof mediaData)
        let json = await axios.post(`http://localhost:3001/api/media/new/${mediaData}`) 
    return json;
}

关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

您需要使用axios更新代码,以便在请求正文中提供mediaData而不是网址:

createMedia: async function(mediaData) {

   console.log("SAVING MEDIA OBJECT");

    console.log(typeof mediaData)
    let json = await axios.post(`http://localhost:3001/api/media/new/`, mediaData) 

    return json;
}

在后端(假设您在此处使用express),您需要将应用配置为使用bodyParser

var express = require('express')
  , app = express.createServer();

app.use(express.bodyParser());

然后在您的控制器中将console.log(req.params)更新为console.log(req.body);然后重新启动节点服务器