require() 파일 참조하기 / include
안녕하세요.
고코더 입니다.
오늘은 외부 참조 파일을 만들어 공통으로 쓰는 방법을 실습해보려고 합니다.
인스턴스를 참조 하도록 도와주는 require() 함수를 이용해
반복으로 선언하는 코드들을 낭비하지 않도록 만들 수 있습니다.
지난 시간에 간단한 mysql을 연결하여
기본예제를 만들어 보았습니다.
mysql 을 연결할때마다 소스상에 DB커넥션 정보를 페이지마다. 기록하면은 유지보수도 어려워지고 보안상에 문제도 있습니다. 이걸 특정 소스에 기록하고 불러와서 사용하도록 개발해보겠습니다.
● 1. 데이터베이스 접속 정보 참조 파일 db_info.js
● 1-1. 데이터베이스에 접속 정보를 관리할 소스를 생성하여 반복작업을 줄여보겠습니다.
host :'localhost',
port : 3306,
user : 'root',
password : 'gocodermysql',
database:'nodedb'
● 1-2. 프로젝트에 폴더를 하나 생성 합니다. New -> Directory 폴더명은 db 입니다.
● 1-2. 그럼 이렇게 db라는 폴더가 프로젝트에 보이게 됩니다.
● 1-3. 첫번째로 만들 소스는 db 접속 정보를 모아둘 페이지입니다.
소스명은 db_info.js 입니다.
● 1-4. 스스 안에 내용은 이렇게 코딩 합니다. 로컬, 실서버, 스테이징, 개발 서버에 정보를 따로 기록 합니다.
저희는 학습이니 local만 사용하게 되겠죠.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | module.exports = (function () { return { local: { host: 'localhost', port: '3306', user: 'root', password: 'gocodermysql', database: 'nodedb' }, real: { host: '', port: '', user: '', password: '', database: '' }, staging: { host: '', port: '', user: '', password: '', database: '' }, dev: { host: '', port: '', user: '', password: '', database: '' } } })(); | cs |
● 1-5. 소스설명
1번 라인 : 모듈로 사용할 수 있도록 만들어줍니다.
3번 라인 : 해당 변수안에 배열로 접속 정보를 저장합니다.
● 2. 데이터베이스 연결 참조파일 : db_conn.js
● 2-1. 정보 정보를 모아두었다면 연결 관리를 할 소스를 생성합니다.
데이터베이스 연결을 참조파일 하나로 정리하는 역할을 할 소스를 만들어 보겠습니다.
db폴더에 db_conn.js를 생성 합니다.
● 2-2. 내용은 이렇게 코딩 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | var mysql = require('mysql'); var config = require('./db_info').local; module.exports = function () { return { init: function () { return mysql.createConnection({ host: config.host, port: config.port, user: config.user, password: config.password, database: config.database }) } } }; | cs |
● 2-3. 소스해석
1번 라인 : mysql 인스터스를 가져옵니다.
2번 라인 : db 접속 정보를 가져옵니다.
7~12번라인 : mysql에 접속 합니다.
● 3. 사용 방법
● 3-1. 이전에 만들었던 mysql 연결 기본예제에 소스를 비교해보겠습니다.
소스가 가벼워지고 가독성 좋아졌는지 확인해보세요.
왼쪽이 참조를 활용한 데이터베이스 연결 화면
오른쪽이 이전에 만든 mysql.js 실습예제 화면
왼쪽 3번라인 : 서버가 실행된 곳은 bin 폴더입니다. 상대참조로 폴더를 찾아야 합니다.
● 3-2. 노드도 역시 다른 언어처럼
유지보수가 유리할 수 있도록 최대한 객체지향적으로 개발합니다.
마무리
require를 잘사용해야 완성도가 높아집니다.
'IT_Developers > Node.js' 카테고리의 다른 글
Node.js - express 게시판 만들기 / 리스트페이지 / select / (15) | 2019.08.01 |
---|---|
Node.js - express 라우터 req res, uri 설명 (0) | 2019.07.31 |
Node.js - Mysql 연결 기본예제 (2) | 2019.07.31 |
Node.js - Mysql 설치방법 / CMD / webstorm 설치방법 (0) | 2019.07.31 |
Node.js - form 전송 post로 받아 josn으로 출력/ 기본 예제 (2) | 2019.07.31 |
댓글