본문 바로가기

컴퓨터/NodeJS

서버사이드 와 데이터베이스 연결 (선택: NodeJS, Mariadb)

[서버 작성]

~/app$ vi main.js
//외부 모듈 추출
const express = require("express");

//서버 생성
const app = express();

//라우팅 모듈 추출
const crud = require("./routes/crud.js");

//라우팅 설정
app.use("/crud", crud.router);

//서버 실행
app.listen(3000, function () {
 console.log("3000번 포트에 서버가 실행됐습니다!");
});

[데이터베이스 접속 정보 모듈화]

~/app$ mkdir modules
~/app/modules$ vi dbconfig.js
const fnDb = function() {
  return {
    host : "localhost",
    user: "아이디",
    password: "비밀번호",
    database: "데이터베이스명"
  }
}

exports.db = fnDb;

※ 요소 이름에도 큰따옴표를 붙여야 한다.

[mariadb 모듈 설치]

app$ npm install mysql

※ mariadb를 설치했어도 npm 연동 패키지는 mysql 패키지를 사용해야 한다.

[라우팅 모듈 작성]

app/routes$ vi crud.js
const express = require("express");
const router = express.Router();
const mysql = require("mysql");
const dbconfig = require("../modules/dbconfig.js");

//반환 결과가 없는 경우
router.get("/delete", function(req, res) {
  let sql = "DELETE FROM 테이블명 WHERE 컬럼명1=? AND 컬럼명2=?";
  const connection = mysql.createConnection(dbconfig.db());
  connection.connect();
  connection.query(sql, [파라미터1, 파라미터2], function(err){
    if(!err){
      console.log("done!");
    } else {
      console.log(err);
    }
  });
  connection.end();
});

//반환 결과가 있는 경우
router.get("/select", function(req, res) {
  let sql = "SELECT * FROM 테이블명 WHERE 컬럼명1=? AND 컬럼명2=?";
  const connection = mysql.createConnection(dbconfig.db());
  connection.connect();
  connection.query(sql, [파라미터1, 파라미터2], function(err, result){
    if(!err){
      if(result[0]) {
        console.log(result);
      } else {
      	console.log("result none");
      }
    } else {
      console.log(err);
    }
  });
  connection.end();
});

exports.router = router;
심화편

[다중쿼리]

1. DB 접속 정보 수정

const dbConfig = {
  host : '[호스트 이름]',
  port : 3306,
  user : '[유저명]',
  password : '[비밀번호]',
  database : '[스키마 명]',
  multipleStatements: true // 여러 쿼리를 ';'를 기준으로 한번에 보낼 수 있게한다.
}

2. NodeJS 연동

var sql1 = 'SELECT CLUB_NM FROM CLUB; '; // 클럽목록
var sql2 = 'SELECT MBER_NM FROM CLUB_MBER; '; // 클럽회원

dbconn.query(sql1 + sql2, function(err, results, field){
  var sql1_result = results[0];	//sql1 의 결과값
  var sql2_result = results[1];	//sql2 의 결과값

	...
});

'컴퓨터 > NodeJS' 카테고리의 다른 글

NodeJS EJS  (0) 2021.11.06
NodeJS 클라이언트에게서 정보 전달 받기  (0) 2021.11.03
NodeJS 라우팅 모듈화  (0) 2021.10.28
011. 정적 자료 제공  (0) 2021.10.28
PM2 사용법  (0) 2021.10.28