0. 목차
1. 개요
2. 기본세팅
3. CRUD
4. 후기
1. 개요
https://kong-dev.tistory.com/122
이거 만든거.
mongoDB로 만들었던거 mySQL로 다시 만들어봄.
똑같은 부분은 제외하고 다른부분만 올릴거임..ㅇㅇ
2. 기본 세팅
2-1. mySQL
https://kong-dev.tistory.com/124
스키마랑 테이블은 위 링크에서 만든걸 사용하기 때문에,
따로 설명 안할거임.
mySQL connect 는
https://kong-dev.tistory.com/125
이렇게 하면 됨
3. CRUD
3-1. Create
app.post('/create', (req, res) => {
db.query(
`INSERT INTO todo(title, dueDate) VALUES('${req.body.todo}', '${req.body.dueDate}')`,
(error, result) => {
if (error) return console.log(error);
console.log('저장 완료');
res.redirect('http://localhost:8000/list');
}
);
});
에.. 뭐 간단하다.
오히려 mongoDB보다 쉬운 듯.
mongoDB는 하나하나 가 뭔가 다 method로 이뤄진 느낌인데,
이건 query method하나에
그냥 쿼리문을 때려박으면 돼서 오히려 이게 더 편한거 같기도 하다.
호옥시 여기 있는 쿼리문들이 기억이 안난다면..?
https://kong-dev.tistory.com/124
와.. 내 블로그 무슨 다이소 같당 헤헿
저저 req.body.title 하고 req.body.dueDate 저부분 스트링이니까 quote 안써도 되겟지?
했는데 아님 quote 로 감싸줘야됨
안감싸주면 에러남.
3-2. Read
app.get('/list', (req, res) => {
db.query(`SELECT * FROM todo`, (error, result) => {
if (error) return console.log(error);
res.render('list.html', { postList: result });
});
});
음 짜릿하게 편하다.
아 그리고 mysql 라이브러리는 query의 결과를 배열로 리턴해주기때문에,
굳이 mongoDB 처럼 toArray() 같은짓 안해줘도 된다.
3-3. Delete
app.post('/delete', (req, res) => {
db.query(`DELETE FROM todo WHERE _id='${req.body._id}'`, (error, result) => {
if (error) return console.log(error);
res.redirect('http://localhost:8000/list');
});
});
3-4. Update
app.get('/edit/:id', (req, res) => {
const _id = Number(req.params.id);
db.query(`SELECT * FROM todo WHERE _id='${_id}'`, (error, result) => {
if (error) return console.log(error);
console.log(result);
res.render('edit.html', { udtPost: result });
});
});
app.post('/edit', (req, res) => {
const todo = req.body.todo;
const dueDate = req.body.dueDate;
const _id = Number(req.body._id);
db.query(
`UPDATE todo
SET title = '${todo}', dueDate = '${dueDate}'
WHERE _id = '${_id}'`,
(error, result) => {
if (error) return console.log(error);
res.redirect('http://localhost:8000/list');
}
);
});
귀찮아서 코드만 넣은게 아니라
진짜 쓸게 없음.
여기까지 왔으면 delete 와 update는 매우 당연한거임 ㅇㅇ
4. 후기
어려울줄 알았는데 생각보다 쉬웠다.
할만했음.
다만 좀 불-편 했던게,
async / await 을쓰고 싶은데
db.query method가 프로미스 인스턴스를 리턴하지 않기 때문에,
async / await 을 쓰는게 불가능하다.
흐으음 이걸 조금 손보는게 내일 목표임
'경일 > nodejs' 카테고리의 다른 글
[nodejs] 쿠키 먹는거 말고 (0) | 2022.02.07 |
---|---|
[nodejs] todoApp async await 으로 조지기 (0) | 2022.02.04 |
[nodejs]mySQL connect Error: connect ECONNREFUSED ::1:3306 이슈 해결 (2) | 2022.02.03 |
[nodejs] node에서 mySQL 연결(Error: connect ECONNREFUSED ::1:3306) (4) | 2022.02.03 |
[nodejs]todoApp 만들기(express, nunjucks, mongodb,body-parser) (0) | 2022.02.01 |
댓글