React.useEffect(() => {
let isMounted = true;
async function fetchPosts(){
try {
const response = await fetch(`http://localhost:5000/api/posts/user/${user._id}`, {
method: "GET",
headers: {
"Authorization": `Bearer ${currentUser.token}`
}
})
await response.json().then(data => {
if (isMounted) setPosts(data);
})
} catch(e:any) {
alert(e.message);
}
return () => {isMounted = false};
}
user._id && fetchPosts(); // добавил проверку на существование идентификатора
}, [currentUser.token, user._id]);
router.post('/add/post/:id', async(req, res) => {
try {
const {text, img} = await req.body;
const user = await User.findById(req.params.id);
await User.updateOne({
firstName: user.firstName,
lastName: user.lastName,
email: user.email,
password: user.password,
background: user.background,
photo: user.photo,
followers: user.followers
},
{$push: {posts: {$each: [{text, img}]}}});
res.redirect('/profile/'+user._id);
} catch (e) {
console.log('error ' + e);
}
})