nodejs용 mysql 라이브러리 – sync-mysql

https://github.com/ForbesLindesay/sync-mysql

DB 쿼리를 async로 하고 잡은 의도는 알겠지만 전 sync로 받는 것을 더 선호합니다. insert보다는 selelct가 더 그렇습니다. 함수처리하면 async도 적당히 좋은데요. cli에서 작동시키는 걸 생각하면 async보다 sync가 작업 흐름이 눈에 딱 보여서 좋아요. 암튼, 그럴 필요가 있어서 nodejs용 mysql 라이브러리 찾아보니 sync-mysql 이라고 있네요.

써보니 좋은점.

  1. 다른것도 그렇겠지만 connect/close를 알아서해주니 좋다
  2. 호출하는 메소드가 단촐하여 좋다. 그냥 query()로 끝.
  3. escaping 따로 안해도 되서 좋다. 쿼리는 문자열로 작성하고 값이 들어가는 곳에 ? 넣고 값은 배열로 전달.

써보니 불편한점.

  1. query(“select …”) 리턴값이 항상 배열이다. 그래서 첫번째 배열의 컬럼명으로 찾아야 한다. 뭐 이정도야 ^^
  2. query(“insert …”) 메소드의 리턴형태 설명이 없어 찍어 봐야 결과를 알 수 있었다.
const insert_result = connection.query("insert into js_auction_currency set symbol=?, fee_auction_sell=?", ['ETH', '2.4%'])
console.log(insert_result)
// result - { fieldCount: 0, affectedRows: 1, insertId: 0, serverStatus: 2, warningCount: 0, message: '', protocol41: true, changedRows: 0 }

결론 간결하니 좋다. 간단하게 쓰기 딱이다.

가장 기대되는 기능.

  1. queueQuery()

쿼리를 큐에 담는 기능이 있다. insert ignore 처럼 그냥 쿼리를 실행만 시켜도 되는 것이 있다면 큐에 막 담아두고 넘어가도 된다. 이 큐는 병렬 처리되는지 확실치 않지만 예제 소스를 봐서는 그럴 것 같다.

assert() 로 작업 결과를 한꺼번에 기다릴수 있는걸로 봐서는 병렬 처리하고 전부 ok 될때까지 기다릴것 같다. 순서 상관없는 대량의 insert를 막 날려도 되려나? ^^

Published by: benant

WEB PROGRAMMER. PHP, nodeJs, ASP, XML, Javascript, VBScript, PL/SQL, MySQL, Oracle. scrollads.co.kr 새로운 모바일 광고 서비스. trenue.com 시스탬 트래이딩 서비스. blogman.co.kr 블로그 운영 관리 서비스. creget.co.kr 해외 상품 구매대행. 핫딜 정보 제공 서비스. fgshop.co.kr - 독립형 쇼핑몰 솔루션.

카테고리 Programming태그, , 댓글 남기기

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중