3. Routes 분리와 mysql 사용하기
- Routes 분리하기
모든 작업을 app.js 에서 처리하면 좋겠지만... 많은 작업을 수행하는 경우 난잡한 프로젝트 폴더가 생겨날 수 있습니다.
그래서! node.js 에서는 이러한 것을 해결하기 위한 좋은 방법이 있습니다.
바로 routes 폴더를 생성하여 분리를 하는 것입니다.
일단 이렇게 routes 폴더를 생성합니다.
1 2 3 4 5 6 7 8 | app.get('/params/:letter',function(req,res){ res.send(req.params.letter); }) // Router 사용하여 Routing var params = require('./routes/params')(app); // 만약 routes 분리를 한 params.js에서 app 객체를 사용하고 싶다면 app.use('/params',params); | cs |
위의 코드와 아래 코드는 동일 한 코드입니다.
단, 위에서는 function 의 작업을 정의하고 있지만
아래에서는 routes 폴더의 params.js 에게 작업을 보내는 차이가 있습니다.
1 2 3 4 5 6 7 8 9 10 11 | module.exports = function(app){ // 받은 매개변수 app을 통해 작업을 할 수 있다. var express = require('express'); var router = express.Router(); // 다른 Router를 사용하려면 변수명만 바꿔주면 됨 router.get('/:letter',function(req,res){ res.send(req.params.letter); }); return router; } | cs |
이렇게 사용하면 다양한 작업을 분리하여 사용할 수 있습니다.
- mysql 사용하기
일단 mysql 설치를 합니다
$ npm install --save node-mysql
mysql 에서의 작업은 node.js 프로젝트와는 다르므로 pass...
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 | module.exports = function(app){ // 받은 매개변수 app을 통해 작업을 할 수 있다. var express = require('express'); var mysql = require('mysql'); // DB 연결 var con = mysql.createConnection({ host : 'localhost', user : 'root', password : '1108', database : 'braille' }); con.connect(); var router = express.Router(); // 다른 Router를 사용하려면 변수명만 바꿔주면 됨 router.get('/:letter',function(req,res){ // res.send("<h1>받은 문자 : " + req.params.name+"</h1>"); // DB 작업 수행 var sql = `SELECT * FROM letter WHERE name='${req.params.letter}'`; con.query(sql, function(err,rows,fields){ if(err){ console.log(err); }else{ console.log(rows); res.json(rows); } }) }); return router; }; | cs |
이게 완성된 코드입니다.
var mysql = require('mysql') 로 모듈을 사용할 준비를 마친뒤,
var con = mysql.createConnection() 메소드를 통해 mysql 연결을 합니다.
그리고 DB 수행문을 con의 query 메소드를 통해 수행하도록 합니다.
이런 식으로 params 의 값을 통해 mysql 쿼리문을 수행하고 그 결과를 response.json 을 이용하여 보내주게 됩니다.
'Dev > Node.js' 카테고리의 다른 글
[Node.js] 프로젝트 작성하기 ! (0) | 2018.01.30 |
---|---|
[Node.js] node.js 시작하기 ! (0) | 2018.01.30 |