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
'일반' 카테고리의 다른 글
Winston 모듈 (0) | 2023.12.22 |
---|---|
Path모듈 (0) | 2023.12.21 |
mysql 연동 시 datetime 에러 (0) | 2023.12.19 |
Connection과 Connection Pool (0) | 2023.12.19 |
require()와 module.exports (0) | 2023.12.19 |