如何使用axios API将带有Vue的前端的数据发送到带有nodeJ的后端的CRUD中的更新功能?

时间:2019-03-28 08:15:19

标签: node.js vuejs2 axios

除了更新,我能够完成CRUD操作,我猜想是流入updateTask函数的数据没有正确发生,我需要进行哪些纠正才能解决此问题?

我以id和标题的形式将数据发送给了updateTodo函数,但是它不起作用。

此代码在前端文件中。

 updateTodo(id,title) {
      axios.put(`http://localhost:4000/todos/${id}`,{title:this.todo.title}).then(() => {
        this.getTodos();
        this.isEditing = false;
      });
    }

这是与axios链接的后端中的代码。

router.route('/:id').put((req,res)=>{
    Todo.findById(req.params.id,(err,todo)=>{
        if(!todo){
            res.send('Error fetching the todo.');
        }else{
            todo.title = req.body.title;
            todo.save()
            .then(todo=>{
                res.json({'msg':'Todo updated successfully.'});
            })
            .catch(err=>{
                res.send('the error in updating the task is ' + err);
            })


        }
    })
})

更新功能可以在后端的put方法(通过邮递员检查)上正常工作,但不能从前端使用。

1 个答案:

答案 0 :(得分:0)

updateTodo(todo) {
  axios.put(`http://localhost:4000/todos/${todo._id}`,{title:todo.title}).then(() => {
    this.getTodos();
    this.isEditing = false;
  });
}

在整个待办事项中发送,而不是分别发送ID和标题,这很不好,因为我在发布之前不进行检查。