개발/Node.Js

node.js mysql 설치/연결

알 수 없는 사용자 2022. 11. 13.
반응형
npm i promise-mysql

mysql 모듈 설치

 

config/db.js

 

const promiseMysql = require('promise-mysql');
let pool;

const createPool = async  () =>{
  pool = await promiseMysql.createPool({
  host: '주소',
  port     : 포트번호(기본 3306),
  user     : 'DB아이디',
  password : 'DB비밀번호',
  database : 'DB명',
  connectionLimit: 5
});
};
createPool();

const simpleQuery = fn => async ( ...args) =>{
    let con = await pool.getConnection()
    
    const result = await fn(con, ...args).catch(error => { 
        console.log(error)
        con.connection.release();
        throw error;
    });
    con.connection.release();
    return result;
    
};
const transaction = fn => async ( ...args) =>{
    let con = await pool.getConnection()
    await con.connection.beginTransaction();
    const result = await fn(con, ...args).catch( async(error) => { 
        await con.rollback();
        con.connection.release();
        throw error;
    });
    await con.commit();
    con.connection.release();
    return result;
};

const connection = async () =>{
    let con = await pool.getConnection();
    return con;
}




module.exports.simpleQuery = simpleQuery;
module.exports.transaction = transaction;
module.exports.connection = connection;

카페24 호스팅을 사용할 경우에는 MySQL 웹어드민에 있는 접속 url이 주소

 

npm i mybatis-mapper

mybatis 사용을 위한 모듈 설치

 

mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="매퍼명">

<select id='쿼리명'>
  쿼리작성
</select>

</mapper>

쿼리문이 들어가는 mapper 작성

 

sql.js

'use strict'
var mysql  = require('../config/db.js');
const mybatisMapper = require('mybatis-mapper');
const path = require('path');
var format = {language: 'sql', indent: '  '};


module.exports.함수명 =  mysql.simpleQuery( async (con,map)=>{
    mybatisMapper.createMapper([ path.join(__dirname,'/mapper/매퍼명.xml') ]);
    var query =  mybatisMapper.getStatement('매퍼 네임스페이스명','매퍼 내의 쿼리명',map, format);  
    return await con.query(query);
});

쿼리를 호출할 sql.js 파일 생성

 

 

반응형

댓글

💲 추천 글