【问题标题】:Getting undefined from req.body从 req.body 获取未定义
【发布时间】:2019-02-10 21:40:51
【问题描述】:

当我调度 startAddLike 时,我在服务器端得到未定义的 uid 值,即。 req.body.uid = undefined.如何解决?

动作生成器:

export const startAddLike = (id) => {
    return (dispatch, getState) => {
        const uid = getState().auth.uid;
        axios
            .post(`http://localhost:5000/api/posts/${id}/like`, uid)
            .then(res => dispatch(likePost(id, uid)))
    }
}

点赞路线

router.post('/:id/like', (req, res) => {
    console.log(req.body.uid);
    Post.findOneAndUpdate({_id:req.params.id}, {$push: {likes: req.body.uid}},{ "new": true})
        .then(post => {
            console.log('l'+post);
            res.json(post);
        })
});

【问题讨论】:

  • 你使用bodyParser模块吗?
  • getState().auth.uid; 一个对象吗?
  • @ArtemArkhipov 是的,否则会出错,而不仅仅是undefined
  • @Sujoy,如果你不回复,我们真的帮不了你
  • 是的。我用过身体解析器。我在发帖时效果很好。但在这种情况下,我从 req.body 得到未定义。

标签: node.js mongodb reactjs express


【解决方案1】:

这里的uid应该作为对象传递。

所以应该是这样的

export const startAddLike = (id) => {
    return (dispatch, getState) => {
        const uid = getState().auth.uid;
        axios
            .post(`http://localhost:5000/api/posts/${id}/like`, { uid: uid })
            .then(res => dispatch(likePost(id, uid)))
    }
}

希望能解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-28
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多