비밀번호 수정도 되지만 그것을 어떻게 리턴하는지 모르겠음.
해결 ⇒ nweUserInfo로 하지말고 그냥 await써서 넘겨줌
TypeError: Content.create is not a function
시퀄라이즈 이상인가... 뭔지 모르겠음..
⇒ 해결 시퀄라이즈 테이블 불러올때 Content ⇒ { Content } 로 바꿔줌.
sqlMessage: "Duplicate entry '5' for key 'Contents.user_id'",
⇒ 해결 : 시퀄라이즈 db구성에서 Contents.user_id 부분이 unique 키로 되어있는것을 지워줌.
왜 destory가 안되지 ⇒ Users테이블에서 User로 시퀄라이즈 문법 바꿈!
구현완료)
질문 ) 토큰의 유효기간을 만료로 하는것보다 좋은 방법이 있을까 일단 패스
똑같은 방법으로 작성하는데 컨트롤러의 폴더가 root로 갈린다..
질문) 좀더 옳은 방법이 없을까? 5/18 무슨말이야 내 자신아?!!
데이터 베이스에 잘들어옴.
로직) : 유저 파람스 받아옴 ⇒ 조회함 ⇒ 응답함
로직상상도) : 로그인 인증. (userInfo에는 로그인 유저가 있음)
⇒ 로그인 유저(id)와 현재 게시물의 user_num이 같은지 봐야함.
⇒ 다르면 인증거부
⇒ 같으면 수정후 반환
기존 컨텐츠정보를 contentInfo로 받아오고
그것을 Content.update를 써서 newContents 로 받아오려 하는데
newContents 변수에 할당되어있는것은 콘솔창에 보면 [1] 밖에 없음
어떻게 할수있는 방법은 없을까...
const userAuthen = require('../authenication/userAuthen')
const { Content } = require('../../models');
module.exports = async (req, res) => {
try {
console.log('7')
const userInfo = await userAuthen(req, res)
const { title, contents } = req.body;
console.log('8')
const newContent = await Content.create({
title,
user_id: userInfo.dataValues.id,
contents,
content_like_count: 0,
})
console.log('9')
// updatedAt 지움
delete newContent.dataValues.updatedAt;
res.status(200).json({
data: newContent.dataValues,
message: "create content"
})
} catch (e) {
console.error(e);
return res.status(500).json({
data: null,
message: 'Server error'
})
}
}
컨텐츠수정 로직:
인증 ㄱㄱ ⇒ 파람으로 받은 컨텐츠 아이디의 게시글 주인(user_id)와 현재 토큰의 유저가 같은지 확인
⇒ 수정실시!
삭제도 마찬가지!!
자랑스럽다!!!
자 그럼 이제 코멘트 구현으로 ㄱㄱㄱ 해봅시다!!
경로 content/:content_id/comment
댓글 작성 로직:
userInfo는 댓글 작성자가 된다.
이제 어떤게시물의 댓글을 다는 지를 알아와야한다.
그것은 params로 받아오는 content_id로 판단한다.
req.body에는 댓글내용(comments) 꽃 종류(item_id) 가 있다.
그러면 우리는어디에 데이터를 저장하는가?
Comment테이블에 저장한다.
어떻게 Comment테이블에 저장하는가?
Comment테이블의 내용을 보면
user_id는 userInfo의 user_id (작성자)이다.
item_id는 req.body에 있다.
comments도 req.body에 있다.
comment_like_count는 서버에서 알아서 0으로줄거임.
content_id는 Contents(게시글)의 id로 종속 되어야한다.
문제) SyntaxError: Unexpected token } in JSON at position 30
14번쨰줄을 시작하는데 만약
req.body에 정상적으로 담겨있지 않다면 서버오류가 남
⇒ 해결.. postman으로 보낼떄 JSON형식을 지키지 않음..
뭔 개소린지는 모르겠지만 저기 item_id에 문제가 있는걸로 보아.
내가 지금 댓글 작성을 할떄 item_id를 3으로 넣었고 지금 관계가 item_id는 items테이블의 id를 따르는데
정작
item 테이블에는 아무것도 없어서 참조를 못하는거임.
우선 더미 데이터를 item 테이블에 넣어주어야 겠음 ⇒ sequlize seeder 어떻게 만들지?
잘 만든것같은데
sequelize db:seed:all --debug 로 에러 왜 생겼는지 찾아봄
User.id 는 프라이머리 키인데 두번 시더로 넣어짐...
⇒ 해결 : 시더
sequelize db:seed:undo:all
로 복구시키고 다시 집어 넣음!