문제
- API요청시에 end-point의 문제가 없음에도 에러를 뱉고 새로고침됨
- route의 try문에서 console찍힘
- body도 넘어옴
- front catch에서 alert로 err출력하여 세로고침 막고 에러 확인
- sql에러
- 복붙임
- 그렇다면 예약어를 썼을 가능성 ? ㅇㅇ 이거였음
- 7개 칼럼명중 무려.3개가 예약어 ㅋㄷㅋㄷ
- 칼럼명 변경 후 성공
POST 요청 front code
- front/Comonents/Comments.js
const onAddComment=(e)=>{
let reply = {
bid:paramId,
cgroup: 3, // 대댓글일시 parent의 group no,아닐시 maxCgroup,현재 하드코딩
ref:3, // 현재 하드코딩
order:1, //현재 하드코딩
cdepth: 1, // 본댓글 1, 대댓글2, 현재 하드코딩
cwriter: user.id,
ccontent: commentValue,
}
fetch(process.env.REACT_APP_SERVER_ADDRESS+process.env.REACT_APP_ADD_COMMENT, {
method:'POST',
mode:'cors',
headers:{
'Content-type' : 'application/json',
'Access-Control-Allow-Origin':'*',
// 'Authorization':'Bearer ' + user.token,
},
body: JSON.stringify(reply)
})
.then((res)=>{
if(res.ok) {
setLists({
...lists,
reply
})
}else {
alert('댓글 작성이 실패하였습니다.')
return false;
}
})
.catch((err)=>{console.log(err)})
}
POST 처리 api code
router.post('/comment/add',
async (req,res,next) => {
try{
console.log('try',req.body.bid)
let sql = 'insert into comments (bid,cgroup,cref,corder,cdepth,replier,content) values (?,?,?,?,?,?,?)';
// 기존코드 let sql = 'insert into comments (bid,cgroup,ref,order,depth,replier,content) values (?,?,?,?,?,?,?)';
let params = [req.body.bid,req.body.cgroup, req.body.ref,req.body.order, req.body.cdepth, req.body.cwriter, req.body.ccontent]
maria.query(sql,params,function(err,rows,fields) {
if(err) {
console.log(err)
return false
}else {
res.send({
code:200,
msg:'SUCCESS'
})
}
})
}catch{
console.log('catch')
res.send({
code:400,
msg:'FAIL'
})
}
}
)
예약어 확인하기
소개 후론트엔드인데 디비하는거 열받네