使用reactjs发送axios POST方法到节点路径的过程是什么?

问题描述

我正在尝试使用axios向后端发送POST请求,但是它为路径抛出404,我不知道为什么

这是调用axios请求的react / redux代码

export const addGoal = (newGoal: Goal) => {
  return (dispatch: any) => {
    authMiddleWare(history)
    const newValues = newGoal
    const authToken = localStorage.getItem('AuthToken')
    axios.defaults.headers.common = { Authorization: `${authToken}` }
    axios
      .post('/goal',newValues)
      .then((response) => {
        console.log('success',response.data)
        dispatch({
          type: ADD_GOAL,payload: response.data,})
      })
      .catch((err) => {
        console.error('\nCould not submit goal\n',err.response)
      })
  }
}

这是我在主后端文件中用于调用路径的nodejs路径

app.post("/goal",auth,postOneGoal);

这是节点路径的后端功能

// ADDS A SINGLE WORKOUT

exports.postOneGoal = (request,response) => {
  if (request.body.id.trim() === "" || request.body.text.trim() === "") {
    return response.status(400).json({ body: "Must not be empty" });
  }

  const newGoalItem = {
    username: request.user.username,id: request.body.id,text: request.body.text
  };

  db.collection("goals")
    .add(newGoalItem)
    .then((doc) => {
      const responseNewGoalItem = newGoalItem;
      responseNewGoalItem.id = doc.id;
      doc.update(responseNewGoalItem);
      return response.json(responseNewGoalItem);
    })
    .catch((err) => {
      response.status(500).json({ error: "Couldn't add the goal" });
      console.error(err);
    });
};

我也在package.json中使用了Firebase url代理。

让我知道是否需要更多信息

解决方法

根据评论将其发布为Community Wiki。

考虑到您正在使用Cloud Functions的事实,每次更新代码时都需要重新部署这些功能。您可以在here可访问的官方文档中查看有关部署功能的更多详细信息。在那里,您可以选择如何以及在何处部署功能以进行更好的测试。