首页 > 解决方案 > request.body 回来了 undefined

问题描述

所以我将用户输入的数据传递到后端,但 req.body 回来未定义,我不知道为什么。我事先设置了我的中间件,但我仍然不确定。我还检查了 axios 发送的值并检查是否正确。

app.use(Cors());
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: true}));

app.post('/signup', (req, res) => {
    //const { email } = req.body;
    console.log(req.body.email);
    if(!req.body.email) {
        console.log("No email, failed");
        return;
    }
    const data = {
        members: [
            {
                email_address: req.body.email,
                status: "subscribed"
            }
        ]
    }

    const postData = JSON.stringify(data);
    const options = {
        url: 'https://us4.api.mailchimp.com/3.0/lists/xxxxxx',
        method: 'POST',
        headers: {
            Authorization: 'xxxxxxx'
        },
        body : postData
    }

    request(options, (err, response, body) => {
            if(err) {
                console.log(err);
            } else {
                if(response.statusCode === 200) {

                    console.log("Success!");
                }else {

                    console.log("Error Accessing")
                    res.send("Error");
                }
            }       
        });
});

这是我的 axios 发布方法:

handleSubmit = e => {
        e.preventDefault();
        const { email } = this.state;
        axios
        .post('http://localhost:5000/signup', email)
        .then(() => console.log("Email Added"))
        .catch(err => {
            console.log(err);
        })
    };

标签: javascriptnode.jsexpressaxiosmailchimp

解决方案


我的问题是我没有将电子邮件作为对象传递,因此该对象返回为空。


推荐阅读