【问题标题】:Send data from React Native front end to Express back end从 React Native 前端发送数据到 Express 后端
【发布时间】:2022-01-28 07:20:54
【问题描述】:

我是 React 和构建 MERN 堆栈的新手。我在将变量从前端传递到后端时遇到问题。我尝试使用控制台日志进行调试,我可以看到我的请求正文是空白的。我花了几个小时试图找出我做错了什么,但我还没有任何突破。

请看下面我的代码。

用户前端挂钩

const fetchUser = (dispatch) => {
  return async () => {
    const email = await AsyncStorage.getItem("email");
    console.log("async email:", email);
    try {
      console.log("sending email:", email);
      const userInfo = await trackerApi.get("/users", {email});
      dispatch({ type: "fetch_users", payload: userInfo.data });
    } catch (err) {
      console.log(err);
    }
  };
};

Express/Axios 后端

router.get("/users", async (req, res) => {
 
     console.log("Request Body:", req.body);
      try {
        const { email } = req.body;
        // console.log("Email for req: ", email);
    
        const user = await User.find({ email: email });
        console.log("Users for req: ", user);
    
        res.send(user);
      } catch (err) {
        console.log(err);
      }
    });

【问题讨论】:

    标签: javascript mongodb react-native express axios


    【解决方案1】:

    问题与 HTTP 方法有关,您的路由/API 是 GET 调用,而 get 方法没有正文,要么更新发布,要么使用 req.query。

    客户

    const userInfo = await trackerApi.post("/users", {email});
    // OR
    const userInfo = await trackerApi.post("/users", { data: {email});
    

    服务器

    router.post("/users", async (req, res) => {
    

    【讨论】:

    • 伙计,我花了很多时间试图让它工作,唯一的错误是我的 HTTP 方法哈哈。非常感谢!!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 2021-07-01
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多