일반
util 모듈 - promisify()
한츄
2023. 12. 21. 09:36
SMALL
node.js의 내장함수인 util모듈 중에 promisify라는 함수가 있습니다. (Node 8.0.0 부터 추가)
Promise로 되어있지 않은 레거시한 모듈들을 비동기로 실행할 때 유용합니다.
Promisify는 함수의 마지막 인자로 콜백함수를 받는 유틸 함수 입니다.
Promise를 사용하기
일반적으로 사용했던 promise를 사용하는 방법입니다.
async function executeQuery() {
try {
const query = "SELECT * FROM your_table";
const results = await poolLocal.query(query);
console.log(results);
} catch (error) {
console.error(`[Error] 쿼리 실행 중 오류가 발생했습니다: ${error.message}`);
}
}
executeQuery();
같은 코드를 아래와 같이 사용할 수 있습니다.
Promisify를 사용하기
promise로 감싸주어 호출 하는 대신 promisify를 사용하면 가독성이 훨씬 좋아집니다
const mysql = require("mysql");
const util = require("util");
const config = require("./config");
const poolServer = mysql.createPool(config.db_server);
/* poolServer 함수 자체를 Promisify의 인자로 전달*/
poolServer.query = util.promisify(poolServer.query);
/* promise와 마찬가지로 then이나 catch를 통해 에러 스트림을 추가로 연결가능*/
const rows = await poolLocal.query("쿼리문")
LIST