개발은 처음이라 개발새발

Node.js에서 MySQL 연동하기 - 기초 가이드 본문

개발기초/Node.js

Node.js에서 MySQL 연동하기 - 기초 가이드

leon_choi 2024. 11. 2. 01:00
반응형

이번 시간에는 Node.js에 MySQL을 연동해보겠습니다. 먼저 MySQL 모듈을 설치해야 합니다.

npm install mysql

 

 

1. 모듈 불러오기

Node.js에서 MySQL을 사용하기 위한 모듈을 불러옵니다.

const mysql = require('mysql');

 

2. 연결 설정

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '비밀번호',
    database: '연결할 데이터베이스'
});

 

  • host: MySQL 서버 주소
  • user: MySQL 사용자 이름
  • password: MySQL 비밀번호
  • database: 사용할 데이터베이스 이름

3. 데이터베이스 연결

try-catch 구문을 사용하여 연결 시도 중 발생할 수 있는 에러를 처리합니다.

try {
    connection.connect();
    console.log('MySQL 연결 성공');
} catch(err) {
    console.error('MySQL 연결 실패:', err);
}

 

 

4. 쿼리 실행

connection.query() 함수로 SQL 쿼리를 실행합니다.

try {
    connection.query('SELECT * FROM 테이블명 limit 5;', (error, results, fields) => {
        if (error) {
            throw error;
        }
        console.log('조회결과:', results);
        console.log('필드정보:', fields);    
    });
} catch (err) {
    console.log('쿼리 실행 실패:', err);
}

 

 

 

error: 쿼리 실행 중 발생한 에러

results: 쿼리 실행 결과

fields: 결과 필드 정보

 

5. 연결 종료

데이터베이스 작업이 끝나면 반드시 연결을 종료해야 합니다.

try {
    connection.end();
    console.log('연결이 성공적으로 종료됐습니다.');
} catch (err) {
    console.error('연결 종료 실패:', err);
}

 

이상으로 Node.js에서 MySQL을 연동하는 기본적인 방법을 알아보았습니다. 아래는 코드 전체 구문과 결과 일부분입니다.

const mysql = require('mysql');

// 데이터베이스 연결 설정
const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '1234',
    database: 'hr'
});

// 데이터베이스 연결
try {
    connection.connect();
    console.log('MySQL 연결 성공');
} catch(err) {
    console.error('MySQL 연결 실패:', err);
}
    
// 쿼리 실행
try {
    connection.query('SELECT * FROM hr_cate limit 5;', (error, results, fields) => {
        if (error) {
            throw error;
        }
        console.log('조회결과:', results);
        console.log('필드정보:', fields);    
    });
} catch (err) {
    console.log('쿼리 실행 실패:', err);
}

// 연결 종료
try {
    connection.end();
    console.log('연결이 성공적으로 종료됐습니다.');
} catch (err) {
    console.error('연결 종료 실패:', err);
}

---------------------------------------------------------------------------------------

MySQL 연결 성공
연결이 성공적으로 종료됐습니다.
조회결과 : [
  RowDataPacket {
    EmployeeNumber: 1,
    Attrition: <Buffer 59 65 73>,
    BusinessTravel: <Buffer 54 72 61 76 65 6c 5f 52 61 72 65 6c 79>,
    Department: <Buffer 53 61 6c 65 73>,
    EducationField: <Buffer 4c 69 66 65 20 53 63 69 65 6e 63 65 73>,
    Gender: <Buffer 46 65 6d 61 6c 65>,
    JobRole: <Buffer 53 61 6c 65 73 20 45 78 65 63 75 74 69 76 65>,
    MaritalStatus: <Buffer 53 69 6e 67 6c 65>,
    OverTime: <Buffer 59 65 73>
  },
  RowDataPacket {
    EmployeeNumber: 2,
    Attrition: <Buffer 4e 6f>,
    BusinessTravel: <Buffer 54 72 61 76 65 6c 5f 46 72 65 71 75 65 6e 74 6c 79>,
    Department: <Buffer 52 65 73 65 61 72 63 68 20 26 20 44 65 76 65 6c 6f 70 6d 65 6e 74>,
    EducationField: <Buffer 4c 69 66 65 20 53 63 69 65 6e 63 65 73>,
    Gender: <Buffer 4d 61 6c 65>,
    JobRole: <Buffer 52 65 73 65 61 72 63 68 20 53 63 69 65 6e 74 69 73 74>,
    MaritalStatus: <Buffer 4d 61 72 72 69 65 64>,
    OverTime: <Buffer 4e 6f>
  }
 ]
  필드정보 : [
  FieldPacket {
    catalog: 'def',
    db: 'hr',
    table: 'hr_cate',
    orgTable: 'hr_cate',
    name: 'EmployeeNumber',
    orgName: 'EmployeeNumber',
    charsetNr: 63,
    length: 11,
    type: 3,
    flags: 0,
    decimals: 0,
    default: undefined,
    zeroFill: false,
    protocol41: true
  },
  FieldPacket {
    catalog: 'def',
    db: 'hr',
    table: 'hr_cate',
    orgTable: 'hr_cate',
    name: 'Attrition',
    orgName: 'Attrition',
    charsetNr: 63,
    length: 50,
    type: 253,
    flags: 128,
    decimals: 0,
    default: undefined,
    zeroFill: false,
    protocol41: true
  }
 ]
반응형

'개발기초 > Node.js' 카테고리의 다른 글

[Node.js] VS Code에 개발환경을 만들어보자  (0) 2024.11.01