[NodeJS] MariaDB 통신 예제
NodeJS 를 사용하여 MariaDB 와 통신하는 간단한 애플리케이션을 개발한다.
MariaDB 테이블 생성 및 더미 데이터 삽입
CREATE TABLE `todos` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(128) NOT NULL, `done` CHAR(1) NOT NULL DEFAULT 'N', PRIMARY KEY (`id`) ) ENGINE=InnoDB ; INSERT INTO TODOS(name) VALUES('HTML5'); INSERT INTO TODOS(name) VALUES('CSS3'); INSERT INTO TODOS(name) VALUES('JavaScript');
MariaDB 연결
mariadb 모듈을 설치하자.
$ npm install --save mariadb
DB 접속 정보를 기입하여 pool 객체를 생성한다.
const mariadb = require('mariadb'); const pool = mariadb.createPool({ host: '127.0.0.1', port: 3306,// default: 3306 database: 'test', user:'root', password: 'password' });
SELECT
간단한 SELECT 예제는 아래와 같다.
const selectExample = async () => { let conn; try { conn = await pool.getConnection(); const rows = await conn.query('SELECT * FROM TODOS'); console.log(rows); } catch (err) { throw err; } finally { if (conn) conn.release();// release pool } }
Query 는 객체를 반환한다.
$ node main.js [ { id: 1, name: 'HTML5', done: 'N' }, { id: 2, name: 'CSS3', done: 'N' }, { id: 3, name: 'JavaScript', done: 'N' }, meta: [ ... ] ]
INSERT
간단한 INSERT 예제는 아래와 같다.
const insertExample = async () => { let conn; try { conn = await pool.getConnection(); const todo = { "name": "jQuery", "done": "N" }; const result = await conn.query('INSERT INTO TODOS(name, done) VALUES(?, ?)', [todo['name'], todo['done']]); console.log(result); } catch (err) { throw err; } finally { if (conn) conn.release();// release pool } }
Query 는 영향을 받은 행의 개수를 반환한다. 예상하는 결과라면 Commit 을 아니라면 Rollback 을 구현하면 된다.
$ node main.js { affectedRows: 1, insertId: 4, warningStatus: 0 }
UPDATE 나 DELETE 는 INSERT 예제와 동일하므로 생략한다. ㅁ
from http://daehopark.tistory.com/20 by ccl(A) rewrite - 2020-03-06 02:54:04
댓글
댓글 쓰기