node.js - 如何使用 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>
除了获取作者之外,一切正常。
解决方案
错字user_email
不是users_email
您在分配给 user_email 和前端使用 users_email 的值中发送电子邮件
推荐阅读
- python - 用python3读取txt文件
- reactjs - React 使用 RouteComponentProps - 类型“{}”缺少“只读”类型的以下属性
我正在使用带有 Typescript 的 React,并且需要使用历史记录,因为我需要有 RouteComponentProps 接口
export default class Routes extends Component<RouteComponentProps, a
- python - Python Pyinstaller没有生成exe文件
- android - Recyclerview 在 AppBarLayout 中不可见
- python - 我使用pymysql在MySQL中执行查询,但是为什么关闭连接后进程仍然存在?
- c# - 从基方法调用派生方法的主体
- json - ERROR 错误:未捕获(承诺中):SyntaxError:JSON 中位置 0 处的意外标记 u
- javascript - VueJS 从 axios 承诺中获得价值
- python - 有没有办法在检测屏幕上显示检测到的物体数量?
- android - TextToSpeech API 中的 speak 方法是否将数据发送到 Google 服务器?