-
[Node.js] express 서버 구축 (mySQL 연동)졸업프로젝트 2021. 4. 10. 14:52
Express 서버 구축하기
1. npm 프로젝트 시작하기
우선, Node.js를 설치합니다.
node --version
cmd 창에 위의 명령어를 쳤을 때 버전 정보가 나온다면 잘 설치가 된 것입니다.
원하는 위치에 프로젝트 파일을 생성하고
cmd 창에서 프로젝트 디렉터리로 이동한 뒤 아래 명령어를 입력합니다.
npm init -y
npm install --save express이렇게 된다면 express를 사용할 준비가 완료되었습니다.
2. 기본 코드 구성
visual studio code를 사용하여 해당 폴더를 열어주면 아래와 같은 폴더가 생성되어있습니다.
루트 폴더에 서버로 사용할 server.js 스크립트를 추가하고 코드를 작성해봅니다.
const express = require('express'); const app = express(); const port = 3000; app.listen(port, () => { console.log(`server is listening at localhost:${port}`); });
cmd 창에서 아래 명령어를 입력했을 때 다음과 같이 출력되면 성공입니다.
node server.js
라우트를 설정해보겠습니다.
app.get('/path', (req, res) => { res.send("라우터 설정") });
코드를 추가하고 다시 서버를 돌려봅시다.
http://localhost:3000/path
위의 경로로 이동하면 작성한 라우터 설정이 화면에 나타나는 것을 확인할 수 있습니다.
res.send() 를 이용하여 요청에 대해 응답을 보낼 수 있습니다.
위의 예제와 같이 text 형태로 보낼 수도 있지만 주로 json 형태로 데이터를 송수신합니다.
+ nodemon 설정
코드를 수정하고 확인할 때마다 서버를 다운했다가 다시 구동하는 것이 번거로울 수 있습니다.
nodemon을 이용하여 스크립트 변화가 바로 적용되도록 합시다.
먼저 nodemon을 설치합니다.
npm install nodemon
프로젝트의 package.json 파일로 이동하여 scripts를 추가하겠습니다.
npm script를 이용하여 프로젝트를 실행하겠습니다.
npm run server
이제 코드를 수정하고 저장할 때마다 nodemon이 실행되어 바로 적용되는 것을 확인하실 수 있습니다.
Express 와 mySQL 연동하기
mysql의 데이터베이스와 테이블, 데이터 생성은 다루지 않습니다.
npm에서 제공하는 mysql 모듈을 설치합니다.
npm install mysql
저는 만들어둔 memomeet 이란 이름의 데이터 베이스를 사용했습니다.
알맞게 값을 입력하여 mysql과 연동합니다.
const mysql = require('mysql'); const mysqlDB = mysql.createConnection({ host:'localhost', user:'root', password:'비밀번호', port:3306, database:'memomeet' });
디비 연결을 확인하기 위해 새롭게 코드를 작성하였습니다.
sql 변수를 만들어 쿼리문을 작성합니다.
쿼리문 속 ?(물음표)는 mysqlDB.query() 메서드의 인자로 주어 값을 전달합니다.
이 메서드는 mysqlDB.query([쿼리문], [인자], [콜백함수]) 형식입니다.
인자 값을 두 개 이상 전달하고 싶을 때는 [args1, args2 ...] 와 같이 배열을 이용합니다.
app.get('/db-connection', (req, res)=>{ var sql = 'SELECT * FROM GROUPLIST WHERE GROUP_NAME = ?' mysqlDB.query(sql, '졸프', function (err, results) { if (err) console.log(err); else res.send(results); }); })
경로로 이동하면 쿼리 결과를 확인 할 수 있습니다.
'졸업프로젝트' 카테고리의 다른 글
[Node.js] python-shell 이용하기 (0) 2021.04.10 [Node.js] Redis 사용하여 파이썬 프로세스와 메시지 교환하기 (pub/sub) (3) 2021.04.10 프로젝트 주제 변경 (화상회의 플랫폼 개발) (0) 2021.01.11 [Expo] Android apk 파일 빌드하기 (0) 2020.12.10 [React Native] 3X3 FlatList 배열 만들기 (0) 2020.12.02