728x90
1. delete 버튼 만들기
url 요청에서 파라미터를 뽑을수 있는데 req요청의 값을 이용할 수 있다.
/:id 이런식으로 작성
params : 매개변수
http://localhost:4000/delete/1 이런 방식이면
/delete/:id 이 주소에서 id가 params 키값이고 실제로 요청한 url의 /:id 이자리에 있는 값이 value이다.
{params:{id:1}} 그래서 이렇게 값을 받을수 있다.
/delete/:id/:pw/:con 이런식으로 여러개의 값을 받을수도 있다.
AUTO_INCREMENT 는 컬럼을 추가할때마다 값이 자동으로 증가한다.
UPDATE와 ALTER 차이점
UPDATE의 데이터 명령어는 데이터 베이스의 관계에 저장된 데이터를 수정하는것
ALTER는 데이터베이스의 관계구조를 수정하는데 사용된다.
다중쿼리문을 이용하기 위해서는 mysql.createConnection 객체안에 옵션을 추가하여 넣어주면 된다.
const temp = mysql.createConnection({
//다중 쿼리문을 사용하기위해 설정하는 옵션 : multipleStatements : true,false
multipleStatements: true,
});
app.get("/delete/:id", (req, res) => {
const sql = "DELETE FROM products WHERE id=?";
const sql2 = "SET @CNT = 0;";
const sql3 = "UPDATE products SET products.id = @CNT:=@CNT+1;";
const sql4 = "ALTER TABLE products AUTO_INCREMENT = 0;";
temp.query(sql, [req.params.id], () => {
temp.query(sql2 + sql3 + sql4, () => {
res.redirect("/");
});
});
});
여러개의 데이터를 뽑아쓸 수도 있다. 이런경우에는 인덱스 번호로 접근하면 된다.
app.get("/test", (req, res) => {
const sql = "SELECT * FROM products;";
const sql2 = "SELECT * FROM products2;";
temp.query(sql + sql2, (err, result) => {
console.log(result[0]);
console.log(result[1]);
});
});
2. 수정하기 버튼 만들기
get방식으로 화면을 띄어주고 post방식으로 값을 보낸다
app.get("/edit/:id", (req, res) => {
fs.readFile("src/edit.html", "utf-8", (err, data) => {
temp.query(
"SELECT * FROM products WHERE id = ?",
[req.params.id],
(_err, result) => {
res.send(ejs.render(data, { data: result[0] }));
}
);
});
});
app.post("/edit/:id", (req, res) => {
const sql = "UPDATE products SET name=?,number=?,series=? WHERE id=?";
const { name, number, series } = req.body;
temp.query(sql, [name, number, series, req.params.id], (err, data) => {
res.redirect("/");
});
});
728x90
'개발 > node.js' 카테고리의 다른 글
[Node.js, jquery] 비행기 예약 시스템 만들기 (0) | 2022.07.29 |
---|---|
[Node.js] socket.io 로 채팅방 만들기 (0) | 2022.07.26 |
[node.js] express, MySQL (0) | 2022.07.25 |
Node.js 핵심개념 (0) | 2022.07.20 |
[node.js] formatting, linting (0) | 2022.07.19 |