Axios然后功能不起作用

时间:2018-02-05 18:36:34

标签: javascript reactjs axios

我想在React中使用Axios将新文档发布到数据库。值得庆幸的是,我可以这样做,但我也希望在控制台上记录一条消息“已插入新帖子”。

这是我的前端代码:

newTodo(todo){
axios.post('/todo', {
    title: todo.title,
    description: todo.description
  })
  .then(function (response) {
    console.log('New post has been inserted!');
  })
  .catch(function (error) {
    console.log(error);
  });
}

我的后端(Nodejs)

server.post('/todo', (req, res) => {
    // Inserting new todo
    var newTodo = new todo({
        title: req.body.title,
        description: req.body.description,
        key: '',
        date: moment().format('lll')
    });

    newTodo.save((e, savedTodo) => {
        if(e){
            console.log(e);
        } else {
            todo.findById(savedTodo._id, (e, foundTodo) => {
                if(e) {
                    console.log(e);
                } else {
                    foundTodo.key = foundTodo._id.toString();
                    foundTodo.save((e, updatedTodo) => {
                        if(e){
                            console.log(e);
                        } else {
                            console.log(updatedTodo);
                        }
                    });
                }
            })
        }
    })
});

请求成功但永远不会记录该消息。此外,没有记录错误。请告诉我我做错了什么或者是否有其他方法可以做到这一点。

1 个答案:

答案 0 :(得分:5)

所以,每当你需要返回一个结果时,例如你需要返回:updatedTodo你需要使用:

res.send(updatedTodo)