-
[Node.js] mysql을 쉽게 동기식으로 사용해보자! (sync-mysql)개발/Javascript 2018. 11. 11. 21:59
요번 포스팅에서는,
Node.js에서 mysql을 사용하는 경우,
아주 간단한 방법으로 mysql의 쿼리를 동기식으로 처리할 수 있는 모듈을 소개해드리고자 합니다.
이전 포스팅에서 언급했듯이, node.js에서 함수는 비동기적이게 작동합니다.
async모듈을 통해 동기식으로 처리해보자
그래서, 동기식으로 처리해야하는 경우가 있으면,
async/await ,promise, async 모듈 등을 이용해서 처리를 하곤 합니다.
하지만, DB를 이용하는 경우, 쿼리문 여러개를 중첩해야하는 경우가 있거나,
쿼리문의 결과를 가지고 복잡한 처리를 해야할 경우, 코드의 가독성이 굉장히 떨어지거나,
동기식으로 처리하기 복잡해지는 면이 있습니다.
이 때, mysql을 이용하는 경우,
sync-mysql 모듈을 이용해서, 아주 쉽게 쿼리를 동기식으로 처리할 수 있습니다.
※ mysql의 기본적인 개념, 설치방법, 사용법은 이 포스팅에서 다루지 않습니다.
1. 우선, sync-mysql 모듈을 설치합니다.
1npm install sync-mysqlcs 2. 설치된 sync-mysql 모듈을 추가합니다.
1var mysql = require('sync-mysql');cs 3. 기존에 만들어 놓은, mysql 데이터베이스에 접속합니다.
123456var connection = new mysql({host: 'localhost', // mysql주소user: 'root', // 유저password: '****', // 비밀번호database: '****' // 데이터베이스 이름});cs AWS RDS 환경이나 local 환경에서, 만들어놓은 MySQL 정보를 입력합니다.
(환경변수로 설정해놓고 불러오는 것을 추천드립니다.)
저는, 테스트용으로, local 환경에 DB를 만들어 놓았습니다.
요번 포스팅에서 테스트용으로 만들어 놓은 DB의 정보는 다음과 같습니다.
4. 쿼리문을 이용하여, 원하는 데이터를 얻을 수 있습니다.
간단한 예로, user테이블의 모든 데이터를 가져오는 코드입니다.
12345678let result = connection.query('SELECT * from user');console.log(result);//결과[ { id: 1, name: '홍길동', age: 20, phone: '010-1234-5678' },{ id: 2, name: '한승우', age: 24, phone: '010-9876-5432' },{ id: 3, name: '김김김', age: 23, phone: '010-1111-1111' } ]cs 동기식으로 쿼리를 처리하기 때문에, 여러 쿼리를 통해 데이터를 쉽게 가공할 수 있습니다.
1234console.log(result[0].name); //user db의 첫번째 row의 name을 출력한다.//결과홍길동cs ※사용하기는 쉽지만, async/await ,promise, async 모듈 등을 이용해서 동기처리를 권장합니다.
참고 : sync-mysql docs
'개발 > Javascript' 카테고리의 다른 글
[Node.js] Node.js에서 빠르고 쉽게 API서버 만들기 - 1 (0) 2019.03.02 [Node.js] node.js 크롤링 방지 우회하기(네이버 크롤링) (0) 2018.11.19 [Node.js] node.js환경에서 웹 크롤링 하기(cheerio-httpcli) (1) 2018.11.19 [Node.js] moment.js로 날짜(date)관련 작업을 쉽게하기 (1) 2018.11.18 [Node.js] async 모듈을 통해 동기식으로 처리해보자 (1) 2018.11.11