Will find a way

NodeJs에서 MySql 외장 모듈 설치 사용 본문

BackEnd/NodeJs

NodeJs에서 MySql 외장 모듈 설치 사용

Jaka_Park 2024. 7. 6. 15:31

목차

1. MySql 모듈

2. mysql 모듈 설치

3. mysql 모듈 사용

 

1. MySql 모듈

MySql 은 NodeJs의 외장 모듈을 통해 이용할 수 있으며 MySql 자체는 아니다.

NodeJs와 이어주는 역할, 쉽게 말해 드라이버라 생각하면 된다.

 

특징

- MySql 콜백방식

- MySql2 Promise 기반으로 사용

- MySql2 공식문서에서도 권장하는 모듈

 

2. MySql 모듈 설치

npm i mysql2

 

3. MySql 모듈 사용

- require로 MySql2 외장 모듈 가져오기

const mysql = require("mysql2");

 

- createConnection : 연결 요청을 보내고 반환받은 객체를 통해 쿼리문을 요청할 수 있는 메서드를 제공한다.

- user : 유저 이름

- password : 유저의 비밀번호 (mysql 비밀번호)

- database : 데이터베이스 이름

- multipleStatements : 다중 쿼리를 실행할 수 있다

const mysqlConnect = mysql.createConnection({
  user : "root",
  password : "1234",
  database : "database1",
  multipleStatements : true
});

 

- query 사용

- query 메서드 : 쿼리문을 매개변수로 전달하면 실행결과를 받을 수 있다.

 

테이블을 생성하는 구문

mysqlConnect.query("SELECT * FROM products", (err, res) => {
  if(err) {
    console.log("테이블이 없어");
    const sql = "CREATE TABLE products(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(10), number INT)";
    mysqlConnect.query(sql);
    console.log("테이블이 없어서 생성");
  } else {
    console.log("테이블이 있어");
  }
});

 

데이터 추가

VALUES (?, ?) ?에 쿼리문을 전달할 수 있다.

const createSql = "INSERT INTO products (name, number) VALUES (?, ?)";
mysqlConnect.query(createSql, ["jaka2", "123"], (err) => {
  if(err) 
    console.log(err);
  console.log("글이 추가됬어");
});

 

데이터 삭제

const deleteSql = "DELETE FROM products WHERE id =?;";
mysqlConnect.query(deleteSql, [1], (err) => {
  if(err)
    console.log("삭제할 데이터를 못 찾았어");
  console.log("정상적으로 삭제 완료");
});

 

데이터 수정

const updateSql = "UPDATE products SET name = ?, number = ?, WHERE id = ?";
mysqlConnect.query(updateSql, ["jaka123", "456", "3"], (err) => {
  if(err)
    console.log(err);
  console.log("데이터 수정 완료");
});

'BackEnd > NodeJs' 카테고리의 다른 글

[NodeJs] http 모듈 : 응답 요청  (0) 2025.02.22
[NodeJs] 템플릿 엔진 EJS 에 대해서  (0) 2024.06.29
NodeJs fs 모듈 (파일 시스템)  (0) 2024.06.18
3-way-handshake 코드 구현  (0) 2024.06.18
스트림(Stream) 사용 예제  (0) 2024.06.12