티스토리 뷰
안녕하세요.
이번에는 node.js와 mysql을 연결하여 DB 데이터를 select 해오는 코드를 작성해보겠습니다.
1. server.js 파일 생성 및 모듈 require
우선 server.js 파일을 생성한 뒤 http와 mysql 모듈을 require 해줍니다.
const http = require('http');
const mysql = require('mysql');
mysql 모듈은 npm을 이용해 별도로 install을 해줘야 하며, http 모듈은 내장되어있기 때문에 install 없이 require로 바로 이용할 수 있습니다.
2. DB Connection 생성
다음은 DB Connection을 생성하겠습니다.
var conn = mysql.createConnection({
host:'localhost',
user:'root',
password:'password',
database:'nodejsdb'
});
host : 연결하려고 하는 데이터베이스의 호스트 이름을 입력합니다.
기본값은 localhost로 제가 지금 접속하려는 DB 역시 local에 있으므로 작성하지 않아도 무관합니다.
user : 접근할 수 있는 사용자 이름을 입력합니다.
local에 mysql을 설치 후 별도의 설정을 하지 않았다면 기본 계정 명이 root로 설정됩니다.
password : 설정한 비밀번호를 입력합니다.
database : 접속하고자 하는 데이터베이스 이름을 입력합니다.
현재 DB 연결은 이 정도 세팅으로 가능하며, 추가적인 연결 옵션은 아래 링크에서 자세히 확인하실 수 있습니다.
https://github.com/mysqljs/mysql
3. server생성 및 DB select 코드 작성
http.createServer( (req, res) => {
conn.query('select * from users ', (err, results, fields) => {
if(err) throw err;
console.log(results);
res.end();
});
}).listen(8001, () => {
console.log('8001 : server start!');
});
users 테이블의 모든 데이터를 조회하여 console에 출력하는 코드를 작성했습니다.
그다음 localhost:8001로 접근하니 아래와 같은 내용이 출력되는 것을 확인할 수 있습니다.
[ RowDataPacket
{
id: 'user1',
name: 'username1',
age: 10,
ins_dt: 2020-01-18T08:24:40.000Z
}
]
4. DB Connection 내용 분리
DB 연결 설정을 별도로 관리하는 config.js 파일을 생성하고, 이 파일을 server.js에서 require 하여 동일한 동작을 수행하도록 하겠습니다.
config.js 파일은 server.js 파일과 동일한 폴더에 생성하여 다음과 같이 작성하도록 하겠습니다.
config.js
const mysql = require('mysql');
module.exports = {
getConnection : mysql.createConnection({
host:'localhost',
user:'root',
password:'asdf112!',
database:'nodejsdb'
})
}
다음은 server.js에서 새로 생성한 config.js 파일을 require하는 내용을 작성하도록 합니다.
mysql을 require하는 내용은 이미 config.js에 작성되어있기 때문에 해당 구문을 지우고 아래와 같이 작성하겠습니다.
const http = require('http');
//const mysql = require('mysql'); //구문 제거
const config = require('./config'); //config.js파일 require
var conn = config.getConnection;
Connection 생성하는 부분을 config.js 파일에 작성한 getConnection으로 수정한 뒤 테스트를 진행하면 정상적으로 DB 연결이 되는 것을 확인하실 수 있습니다.
최근 Node.js를 이용해 Restful api를 구현하거나 Electron을 이용해 업무 효율을 소소하게 올려주는 툴을 개발하며 재미를 보고 있습니다.
Restful api와 Electron 관련 내용 역시 추후에 정리하여 업로드 하겠습니다.
읽어주셔서 감사합니다.
'개발 일지' 카테고리의 다른 글
Node.js - NPM(Node Package Manager) 간단 사용법 (0) | 2020.02.01 |
---|---|
Node.js - Electron 빌드하기 ( .exe파일 생성) (4) | 2020.01.22 |
[Node] Node.js로 웹서버 구축하기 - (2) 서버 생성 및 동작시키기 (0) | 2020.01.05 |
[Node] Node.js로 웹서버 구축하기 - (1) 세팅 (설치 및 동작 확인) (1) | 2019.12.29 |
VS Code 우클릭 시 Open with code가 없을 때 (4) | 2019.12.21 |