Today
-
Yesterday
-
Total
-

ABOUT ME

-

  • Node.js | Express + MariaDB 연동하기 (DB연동, CRUD)
    ▼ Backend/노드JS (Node.js) 2021. 7. 8. 14:20
    반응형

     

    MariaDB 설치 후 진행 바랍니다.

     

     

    MariaDB | 윈도우 MariaDB 설치 및 접속하기

    MariaDB란? 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)이다. MySQL과 동일한 소스 코드를 기반으로 하며, GPL v2 라이선스를 따른다. 오라클 소유의 현재 불확실한 MySQL의 라이선스 상태에 반

    kitty-geno.tistory.com

     

     


     

    1. 프로젝트 경로에서 명령어 입력

     

    npm install mysql --save

     

     

     

    2. package.json (/프로젝트 경로/package.json)

    mysql이 추가되었는지 확인

     

     

     

    3. maria.js (/프로젝트 경로/database/connect/maria.js)

    database/connect 폴더는 원래 없는 폴더 이므로 새로 생성한다.

    접속 정보 입력

     

    const maria = require('mysql');
    
    const conn = maria.createConnection({
        host:'localhost',
        port:3306,
        user:'user',
        password:'pwd',
        database:'db name'
    });
    
    module.exports = conn;

     

     

    4. app.js (/프로젝트 경로/app.js)

    var app = express(); 아래에 connect 코드 추가

     

    // mariaDB connect
    const maria = require('./database/connect/maria');
    maria.connect();

     

     

     

    5. index.js (/프로젝트 경로/routes/index.js)

    CRUD 테스트를 위해 router.get으로 url을 매핑한다.
    CREATE, DROP, INSERT, SELECT, UPDATE, DELETE 

     

    var express = require('express');
    var router = express.Router();
    
    // require maria.js 
    const maria = require('../database/connect/maria');
    
    /* GET home page. */
    router.get('/', function(req, res, next) {
      res.render('index', { title: 'Express' });
    });
    
    router.get('/create', function(req, res) {
      maria.query('CREATE TABLE DEPARTMENT ('
    	+'DEPART_CODE INT(11) NOT NULL,'
    	+'NAME VARCHAR(200) NULL DEFAULT NULL COLLATE utf8mb3_general_ci,'
    	+'PRIMARY KEY (DEPART_CODE) USING BTREE)', function(err, rows, fields) {
        if(!err) {
          res.send(rows); // responses send rows
        } else {
          console.log("err : " + err);
          res.send(err);  // response send err
        }
      });
    });
    
    router.get('/drop', function(req, res) {
      maria.query('DROP TABLE DEPARTMENT', function(err, rows, fields) {
        if(!err) {
          res.send(rows); // responses send rows
        } else {
          console.log("err : " + err);
          res.send(err);  // response send err
        }
      });
    });
    
    router.get('/insert', function(req, res) {
      maria.query('INSERT INTO DEPARTMENT(DEPART_CODE,NAME) VALUES(5001,"ENGLISH")', function(err, rows, fields) {
        if(!err) {
          res.send(rows); // responses send rows
        } else {
          console.log("err : " + err);
          res.send(err);  // response send err
        }
      });
    });
    
    router.get('/select', function(req, res) {
      maria.query('SELECT * FROM DEPARTMENT', function(err, rows, fields) {
        if(!err) {
          res.send(rows); // responses send rows
        } else {
          console.log("err : " + err);
          res.send(err);  // response send err
        }
      });
    });
    
    router.get('/update', function(req, res) {
      maria.query('UPDATE DEPARTMENT SET NAME="UPD ENG" WHERE DEPART_CODE=5001', function(err, rows, fields) {
        if(!err) {
          res.send(rows); // responses send rows
        } else {
          console.log("err : " + err);
          res.send(err);  // response send err
        }
      });
    });
    
    router.get('/delete', function(req, res) {
      maria.query('DELETE FROM DEPARTMENT WHERE DEPART_CODE=5001', function(err, rows, fields) {
        if(!err) {
          res.send(rows); // responses send rows
        } else {
          console.log("err : " + err);
          res.send(err);  // response send err
        }
      });
    });
    
    module.exports = router;

     

     

    6. 서버 시작

     

    npm start

     

     

     

    결과

    create

     

    insert

     

    select

     

    update

     

    delete

     

    drop

    demo.7z
    1.03MB

    반응형

    댓글

Designed by Tistory.