안녕하세요 @relamankwon 입니다.
sequelize만 사용하다가 다른 db에 접근할 일이 있어서 예전에 사용하던 mysql 패키지를 사용할 일이 생겼습니다.
다음은 mysql 패키지를 사용하여 쿼리를 실행하고 Promise를 반환하는 예제입니다.
const mysql = require('mysql');
// 데이터베이스 연결을 위한 연결 객체 생성
const connection = mysql.createConnection({
host: 'localhost',
user: '사용자_이름',
password: '비밀번호',
database: '데이터베이스_이름'
});
// 데이터베이스 연결
connection.connect((error) => {
if (error) {
console.error('데이터베이스 연결 오류:', error);
return;
}
console.log('데이터베이스에 연결되었습니다!');
// 쿼리 실행 후 Promise를 반환하는 함수
function executeQuery(sql) {
return new Promise((resolve, reject) => {
connection.query(sql, [], (err, results) => {
if (err) {
reject(err);
} else {
resolve(results);
}
});
});
}
// 사용 예시
const sql = 'SELECT * FROM users';
executeQuery(sql)
.then((results) => {
// 쿼리 결과 처리
console.log('쿼리 결과:', results);
})
.catch((error) => {
// 오류 처리
console.error('쿼리 실행 오류:', error);
})
.finally(() => {
// 데이터베이스 연결 종료
connection.end((error) => {
if (error) {
console.error('데이터베이스 연결 종료 오류:', error);
return;
}
console.log('데이터베이스 연결이 종료되었습니다.');
});
});
});
적용하니 잘 실행이 되네요 ㅎㅎ