Node.js에서 MySQL을 사용하면 테이블의 데이터를 다양한 방법으로 조회할 수 있습니다. 특히 SELECT
문과 함께 WHERE
조건을 사용하면 특정 조건에 맞는 데이터를 손쉽게 검색할 수 있습니다. 이번 글에서는 Node.js와 MySQL을 연동하여 특정 조건에 맞는 데이터를 조회하는 방법을 단계별로 알아보겠습니다.
Node.js와 MySQL 연결 설정
MySQL 데이터를 조회하기 전에, 먼저 Node.js와 MySQL 간의 연결을 설정해야 합니다. 이를 위해 mysql2
패키지를 설치하고, MySQL 서버와 연결하는 방법을 확인해보겠습니다.
1. mysql2 패키지 설치
Node.js와 MySQL을 연동하려면 mysql2
패키지를 설치해야 합니다. 이 패키지를 통해 MySQL 데이터베이스와 연결할 수 있습니다.
$ npm init -y
$ npm install mysql2
위 명령어를 통해 프로젝트에 mysql2
패키지를 설치할 수 있습니다.
2. MySQL 연결 설정
이제 MySQL 서버에 연결할 차례입니다. createConnection
메서드를 사용해 MySQL 서버와 연결할 수 있습니다.
// app.js
const mysql = require('mysql2');
// MySQL 연결 설정
const connection = mysql.createConnection({
host: 'localhost', // MySQL 서버 호스트
user: 'root', // MySQL 사용자명
password: 'your-password', // MySQL 비밀번호
database: 'node_mysql' // 사용할 데이터베이스 이름
});
// MySQL 연결
connection.connect((err) => {
if (err) {
console.error('MySQL 연결 중 오류 발생:', err);
return;
}
console.log('MySQL에 성공적으로 연결되었습니다.');
});
MySQL 데이터 조회: WHERE 조건 사용
MySQL에서 데이터를 조회할 때 WHERE
조건을 사용하면 특정 조건에 맞는 데이터를 검색할 수 있습니다. 이를 통해 원하는 결과만 가져올 수 있습니다.
1. 데이터 삽입
먼저 조회할 데이터를 삽입해야 합니다. INSERT INTO
문을 사용해 데이터를 추가할 수 있습니다.
// 데이터 삽입 쿼리
const insertQuery = 'INSERT INTO users (name, email) VALUES (?, ?)';
const userData = ['Jane Doe', 'jane@example.com'];
// 데이터 삽입 실행
connection.query(insertQuery, userData, (err, results) => {
if (err) {
console.error('데이터 삽입 중 오류 발생:', err);
return;
}
console.log('데이터가 성공적으로 삽입되었습니다.');
});
2. 조건에 맞는 데이터 조회
이제 WHERE
절을 사용하여 특정 조건에 맞는 데이터를 조회하는 방법을 알아보겠습니다. 예를 들어, 이메일이 jane@example.com
인 사용자를 조회해보겠습니다.
// 조건에 맞는 데이터 조회 쿼리
const selectQueryByEmail = 'SELECT * FROM users WHERE email = ?';
const email = 'jane@example.com';
// 조건에 맞는 데이터 조회 실행
connection.query(selectQueryByEmail, [email], (err, results, fields) => {
if (err) {
console.error('조건에 맞는 데이터 조회 중 오류 발생:', err);
return;
}
console.log('조회된 데이터:', results);
});
위 코드에서는 WHERE
절을 사용해 이메일이 jane@example.com
인 사용자를 조회합니다. 배열에 조건 값을 전달하여 보안 취약점인 SQL 인젝션을 방지할 수 있습니다.
3. MySQL 연결 종료
데이터 조회 작업이 끝나면, MySQL 연결을 종료하는 것이 중요합니다. connection.end()
메서드를 사용하여 연결을 종료할 수 있습니다.
// MySQL 연결 종료
connection.end((err) => {
if (err) {
console.error('MySQL 연결 종료 중 오류 발생:', err);
return;
}
console.log('MySQL 연결이 종료되었습니다.');
});
전체 코드 예시
앞서 설명한 내용을 바탕으로, Node.js에서 특정 조건에 맞는 데이터를 조회하는 전체 코드를 다음과 같이 작성할 수 있습니다.
// app.js
const mysql = require('mysql2');
// MySQL 연결 설정
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'your-password',
database: 'node_mysql'
});
// MySQL 연결
connection.connect((err) => {
if (err) {
console.error('MySQL 연결 중 오류 발생:', err);
return;
}
console.log('MySQL에 성공적으로 연결되었습니다.');
// 조건에 맞는 데이터 조회 쿼리
const selectQueryByEmail = 'SELECT * FROM users WHERE email = ?';
const email = 'jane@example.com';
// 데이터 조회 실행
connection.query(selectQueryByEmail, [email], (err, results, fields) => {
if (err) {
console.error('데이터 조회 중 오류 발생:', err);
return;
}
console.log('조회된 데이터:', results);
// MySQL 연결 종료
connection.end((err) => {
if (err) {
console.error('MySQL 연결 종료 중 오류 발생:', err);
return;
}
console.log('MySQL 연결이 종료되었습니다.');
});
});
});
결론
Node.js에서 MySQL을 사용하면 WHERE
조건을 통해 손쉽게 데이터를 조회할 수 있습니다. 이 방법을 사용하여 특정 조건에 맞는 데이터를 검색하고, 이를 활용해 유용한 애플리케이션을 개발해보세요. 특히 SQL 인젝션과 같은 보안 취약점을 방지하기 위해 파라미터화된 쿼리를 사용하는 것이 좋습니다.
Node.js MySQL WHERE 사용법 자세히 알아보기
댓글 쓰기