본문으로 바로가기

[Node.js] Routes를 분리하고 mysql 사용하기 !

category Dev/Node.js 2018. 1. 30. 20:29

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