프로그래밍/Node.js

Node.js MySQL 연동 - SELECT

채윤아빠 2021. 5. 20. 02:15
728x90
반응형

nodejs에서 MySQL을 연동하는 간략한 방법에 대하여 정리해 둡니다.

간단한 데이터 조회 (SELECT)

기본적으로 데이터베이스 서버와 연결을 하고, 간단한 쿼리를 실행하는 예제는 아래와 같습니다.


var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'me',
  password : 'secret',
  database : 'my_db'
});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});

connection.end();

데이터베이스 설정에 문제가 없다면, 실행 결과는 다음과 같습니다.

The solution is: 2

connection.query() 함수의 실행 결과로 받는 "results"에 "SELECT" 쿼리의 실행 결과에 따라 여러 레코드를 받게 됩니다.
"fields"에는 "results" 레코드들에 대한 컬럼의 정보가 들어 있습니다.

조회를 위한 "WHERE" 절 구성 등을 위하여 파라미터를 전달할 경우에는 다음과 같이 직접 조회 쿼리를 작성할 수도 있고, "?"를 이용하여 별도로 파라미터를 전달하여 줄 수도 있습니다. "SQL Injection" 등의 위험을 피하기 위해서는 가급적 "?"로 쿼리문을 작성하고 별도로 파라미터를 전달하는 방식을 권장합니다.


var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'me',
  password : 'secret',
  database : 'my_db'
});

connection.connect();

//connection.query("SELECT member_no, member_name, email, phone \
//        FROM MEMBERS WHERE member_id = 'hbesthee' AND password = 'password';"
//        , function (error, results, fields) {
connection.query("SELECT member_no, member_name, email, phone \
        FROM MEMBERS WHERE member_id = ? AND password = ?;"
        , ['hbesthee', 'password'], function (error, results, fields) {
  if (error) throw error;
  console.log('records: ', results);
});

connection.end();

데이터베이스 연결과 "MEMBERS" 테이블이 정의되어 있다면, 회원정보 내역이 출력됩니다.

참고 : https://github.com/mysqljs/mysql#multiple-statement-queries