바닥코딩

node.js 웹서버 프로젝트 실시간 데이터 dashboard 만들기 4(데이터 베이스 연동) 본문

Node JS

node.js 웹서버 프로젝트 실시간 데이터 dashboard 만들기 4(데이터 베이스 연동)

개발공부개발공부 2020. 1. 30. 17:32

mariaDB

 mariaDB는 mariaDB사가 만든 관계형 DBMS 소프트웨어 입니다 이는 MYSQL이 오라클에 인수합병당하면서 상업적으로 mysql을 이용할 시 사용료를 내도록 정책을 바꾸어 버렸는데 mysql의 창업자중 한명이였던 몬티 와이드니어스가 동료들과 함께 mysql 기반 오픈소스 RDBMS를 개발한 것이 지금의 mariaDB 가 되었습니다.

 

본 프로젝트에서는 mariaDB를 활용하여 데이터베이스 생성 및 연동을 진행해 보겠습니다. 

maiaDB와 해당 프로젝트 연동

직접적으로 데이터베이스와의 연동이 필요할 때마다 커넥트를 시켜줘도 되지만 그건 매우 번거로운 작업이기 떄문에 커넥션 정보를 가지고 있는 js 파일과 커넥션 pool을 생성하여 db에 연동이 필요할 경우 연동이 가능하게 분리할 수 있습니다.

module.exports=(function(){
    return {
        host:"localhost",
        user:"root",
        password:"123123",
        database:"dashboard"
    }
})();

 

var mysql = require('mariadb');

    var config = require('./db_config');
    var pool = mysql.createPool({
        host:config.host,
        user:config.user,
        password:config.password,
        database : config.database
    });


module.exports = pool;

 

ex) 로그인페이지에서 데이터베이스와의 연동 예시 

로그인 기능을 구현하기 위해서는 해당 데이터 베이스내부 테이블에 접속을 해 해당 유저 정보가 있는지를 확인 해 비교를 해봐야합니다.

var express = require('express');
var router = express.Router();
var mysql = require('mysql');
var pool = require('../model/db_connect');


router.post('/login_ok', async function (req, res) {

    var email = req.body.inputEmail;
    var password = req.body.inputPassword;
    console.log(email +' '+ password);

    con = await pool.getConnection();

    query = "select * from user where email=?";

    result = await con.query(query,[email]);
    con.release();
    if(result[0].pass===password){
        req.session.name=result[0].NAME;
        req.session.phone = result[0].phone;
        res.redirect('/main');
    }else{
        res.redirect('/');
    }
  });
module.exports = router;

데이터 베이스에 접속하기 위해 connection을 생성하고 pool을 통해 해당 데이터베이스에 접속을 한다음 select 쿼리를 날려 데이터를 비교해 로그인이 성공했을 떄와 실패했을때의  경우를 모두 코딩합니다.