-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
글쓰기? 리트윗? 새로고침 오류
22.11.12 00:32 작성 조회수 197
0
백엔드 노드서버 구축하기까지 들었는데 어딘지 모르겠지만 어느순간부터 글쓰기 기능이 정상적이지 않습니다 리트윗쪽도 마찬가지에요
리트윗 할때
이런 에러 뜨고
콘솔
redux
RETWEET_REQUEST
RETWEET_SUCCESS
네트워크
대략 이런 상태입니다
리트윗 클릭하면 이런 오류뜨는데 새로고침하면 정상적으로 리트윗 되있어요
글쓰기도 오류창은 안뜨는데 무반응이고 새로고침하면 정상적으로 뜹니다
콘솔
redux
네트워크
대략 이정도 뜨는데 마찬가지로 새로고침하면 글 작성 되있어요
백엔드쪽 부분 같기는 합니다ㅠㅠ
백엔드 routes/post.js 리트윗,글작성 코드는 이런상태에요
router.post('/', isLoggedIn, upload.none(), async (req, res, next) => { // POST /post
try {
const hashtags = req.body.content.match(/#[^\s#]+/g);
const post = await Post.create({
content: req.body.content,
UserId: req.user.id
});
if (hashtags) {
const result = await Promise.all(hashtags.map((tag) => Hashtag.findOrCreate({
where: { name: tag.slice(1).toLowerCase() }
})));
await post.addHashtags(result.map((v) => v[0]));
}
if(req.body.image) {
if (Array.isArray(req.body.image)) {
const images = await Promise.all(req.body.image.map((image) => Image.create({ src: image })));
await post.addImages(images);
} else {
const image = await Image.create({ src: req.body.image });
await post.addImages(image);
}
}
const fullPost = await Post.findOne({
where: { id: post.id },
include: [{
model: Image
}, {
model: Comment,
include: [{
model: User, // 댓글 작성자
attributes: ['id', 'nickname']
}]
}, {
model: User, // 게시글 작성자
attributes: ['id,', 'nickname']
}]
}, {
model: User, // 좋아요 누른 사람
as: 'Likers',
attributes: ['id']
})
res.status(201).json(fullPost);
} catch (error) {
console.error(error);
next(error);
}
});
router.post('/images', isLoggedIn, upload.array('image'), async (req ,res, next) => { // POST /post/images
console.log(req.files);
res.json(req.files.map((v) => v.filename));
});
router.post('/:postId/retweet', isLoggedIn, async (req, res, next) => { // POST /post/1/comment
try {
const post = await Post.findOne({
where: { id: req.params.postId },
include: [{
model: Post,
as: 'Retweet'
}]
});
if (!post) {
return res.status(403).send('존재하지 않는 게시글 입니다.');
}
if (req.user.id === Post.UserId || (post.Retweet && post.Retweet.UserId === req.user.id)) {
return res.status(403).send('자신의 글은 리트윗할 수 없습니다');
}
const retweetTargetId = post.RetweetId || post.id;
const exPost = await Post.findOne({
where: {
UserId: req.user.id,
RetweetId: retweetTargetId
}
});
if (exPost) {
return res.status(403).send('이미 리트윗 했습니다');
}
const retweet = await Post.create({
UserId: req.user.id,
RetweetId: retweetTargetId,
content: 'retweet'
});
const retweetWithPrevPost = await Post.findOne({
where: {id: retweet.id},
include: [{
model: Post,
as: 'Retweet',
include: [{
model: User,
attributes: ['id', 'nickname']
}, {
model: User,
as: 'Likers',
attributes: ['id']
}, {
model: Image
}]
}, {
model: User,
attributes: ['id', 'nickname']
}, {
model: Image
}, {
model: Comment,
include: [{
model: User,
attributes: ['id', 'nickname']
}]
}]
});
res.status(201).json(retweetWithPrevPost);
} catch (error) {
console.error(error);
next(error);
}
});
답변을 작성해보세요.
답변 1