[Node.js] 삭제, 수정버튼 만들기

2022. 7. 26. 10:07·개발/node.js
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
'개발/node.js' 카테고리의 다른 글
  • [Node.js, jquery] 비행기 예약 시스템 만들기
  • [Node.js] socket.io 로 채팅방 만들기
  • [node.js] express, MySQL
  • Node.js 핵심개념
TeTedo.
TeTedo.
  • TeTedo.
    TeTedo 개발 일기
    TeTedo.
  • 전체
    오늘
    어제
    • 분류 전체보기 (319)
      • 개발 (274)
        • Article (4)
        • 정리 (21)
        • Spring Boot (17)
        • JPA (2)
        • JAVA (6)
        • Database (4)
        • 자료구조 (11)
        • 알고리즘 (32)
        • React (20)
        • Docker (10)
        • node.js (18)
        • Devops (11)
        • Linux (4)
        • TypeScript (3)
        • Go (10)
        • HyperLedger (4)
        • BlockChain (43)
        • html, css, js (48)
        • CS (3)
        • AWS (3)
      • 모아두고 나중에 쓰기 (3)
      • 팀프로젝트 (18)
        • SNS(키보드워리어) (9)
        • close_sea (9)
      • 개인프로젝트 (1)
        • Around Flavor (1)
        • CHAM (13)
        • ethFruitShop (5)
      • 독서 (0)
        • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (0)
  • 블로그 메뉴

    • 홈
    • 개발일기
    • CS
    • 실습
    • 코딩테스트
    • 웹
    • Go
    • node.js
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    하이퍼레저
    30일 챌린지
    go
    CSS
    go언어
    도커
    ERC721
    nodejs
    컨테이너
    erc20
    명령어
    node
    node.js
    프로그래머스
    30일챌린지
    블록체인
    React
    js
    html
    mysql
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
[Node.js] 삭제, 수정버튼 만들기
상단으로

티스토리툴바