BackEnd/로스트아크 Work

DB Node JS 연동

빡상이 2021. 8. 9. 17:31

먼저 mysql 를 node js에 연결시킵니다

db.js 파일을 생성한뒤 작성

// mysql 연결

const mysql = require('mysql');
const { response } = require('express');
const { resourceUsage } = require('process');

const db= mysql.createConnection({
  host: 'ip 주소', //개인ip주소
  user:'sql아이디',
  password: 'sql비번',
  port:3306,
  database:'LostArkDB' //테이블명 mysql로 치면 use LostArkDB 가 된다
});

db.connect(function(err) {
  
  if (err) throw err;
  console.log('Connected');
  });

  module.exports=db;

이후 db가 필요한 파일에서 연결을 시켜줍니다

라우트폴터 내 mydb라는 js로 작성하였다

const db=require('./routes/mydb');

쿼리 작성

db.query('select * from users;', function(err, result) {
    if (err) throw err;
    res.send(result);
    });

db는 앞서 const db로 선언하였으니 db이고 이부분은 위 선언에 따라서 변동될 수 있다

 

**파라미터를 이용한 쿼리 작성방법

    var sql = 'SELECT * FROM users WHERE user_id=? AND user_pw=?';
    db.query(sql , [username, password], function (err, result) {
      if(err) console.log('mysql 에러');  

      // 입력받은 ID와 비밀번호에 일치하는 회원정보가 없는 경우   
      if(result.length === 0){
        console.log("결과 없음");
        return done(null, false, { message: 'Incorrect' });
      }else{
        console.log(result);
        var json = JSON.stringify(result[0]);
        var userinfo = JSON.parse(json);
        console.log("userinfo " + userinfo);
        return done(null, userinfo);  // result값으로 받아진 회원정보를 return해줌
      }
    })

sql이라는 변수에 쿼리를 string타입으로 작성하되, row에 있는 값을 ? 로 파라미터 처리하였다

이후에 db.query(sql,[ㅇㅇㅇ,ㅁㅁㅁ]에서각각 ? ?가 ㅇㅇㅇ, ㅁㅁㅁ으로 바뀌어 들어간다 하드코딩 줄이기 좋아보임

 

추가로  

반응형