首页 > 解决方案 > 如何使用 Express/Mysql 将用户数据从 nodeJS 传递到 reactJS

问题描述

我需要在我的帖子中传递作者的电子邮件。我虽然可以通过在我的帖子路线中加入表格来做到这一点,但它并没有真正起作用。

这是我的路线:

router.get("/posts", async (req, res) => {
  const { id } = req.session.user;
  //const usersPosts = await user.$relatedQuery("posts");
  try {
    const user = await User.query().findById(id);
    if (!user) {
      return res.status(401).send("User was not found");
    }
    const posts = await Post.query()
      .select([
        "users.email",
        "images.name",
        "posts.category",
        "posts.title",
        "posts.description",
        "posts.created_at"
      ])
      .join("images", { "posts.image_id": "images.id" });
      .join("users", { "posts.user_email": "users.email" });

    console.log("it worked");
    return res.status(200).send({ posts: posts });
  } catch (error) {
    console.log(error);
    return res.status(404).send({ response: "No posts found" });
  }
});

这是我的 axios 获取路线的代码:

function Home(props) {
  const [posts, setPosts] = useState([]);

  const getPosts = async () => {
    try {
      let response = await axios.get("http://localhost:9090/posts", {
        withCredentials: true
      });

      console.log(response.data.posts);
      setPosts(response.data.posts);
    } catch (error) {
      console.log(error.data);
    }
  };
  useEffect(() => {
    getPosts();
  }, []);

这就是我试图归还它的方式:

{posts.map((post, index) => {
          return (
            <>

                      Author:<br></br>
                      <small>{post.user_email}</small>
                    </p>
                    <p>
                      Category:<br></br>
                      <small>{post.category}</small>
                    </p>

                    <p>
                      Description:<br></br>
                      <small>{post.description}</small>
                    </p>
                    <p>
                      Created: <br></br>
                      <small>{post.created_at}</small>

除了获取作者之外,一切正常。

标签: node.jsreactjsdatabaseaxios

解决方案


错字user_email不是users_email 您在分配给 user_email 和前端使用 users_email 的值中发送电子邮件


推荐阅读