글 목차
(1) Node.js로 RESTful API 만들기 - POST편
현재글 >> (2) Node.js로 RESTful API 만들기 - GET편
(3) Node.js로 RESTful API 만들기 - PUT편
(4) Node.js로 RESTful API 만들기 - DELETE편
(5) RESTful API 활용하기 - 웹편 (작성중)
(6) RESTful API 활용하기 - 안드로이드 앱편 (작성중)
* 프로젝트 세팅 과정은 (1) Node.js로 RESTful API 만들기 - POST편 을 참고하세요!
이제는 GET 메소드를 작성 해 보겠다.
작성에 앞서서, 나는 myGames 테이블에 데이터를 몇 개 채워 넣었다.
./routes/index.js
이전에 썼던 returnResult() 함수는 이번에 result 객체를 반환하는 방향으로 바꾸었는데,
GET에서 결과값을 result 객체에 쉽게 더해주기 위함이다.
이전 POST 강의부터 찬찬히 따라오시는 분들은 주의하길 바란다!
| 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | var mysql = require("mysql"); module.exports = function(app, pool) {     // >> POST     app.post("/games", function(req, res) {         var result = {};         // 요청된 데이터 중 title이라는 놈을 뽑아 title이라고 명명.         var title = req.body.title;         // title에 아무 값이 없다면 에러 발생시킴         if (title == undefined) {             result = returnResult(new Error("Title is empty."), res);         } else {             // db에 연결하여 sql 수행             pool.getConnection(function(err, conn) {                 // title 정보를 DB에 넣기 위한 SQL문 준비                 var sql = "INSERT INTO myGames (title) VALUES ('" + title + "');";                 conn.query(sql, function(err) {                     // err가 떠도 conn은 release() 꼭 해주어야한다.                     result = returnResult(err, res);                     conn.release();                 });             });         }         result.status = res.statusCode;         res.send(result);     });     // >> GET     app.get("/games", function(req, res) { 	var result = {};         // db에 연결하여 sql 수행         pool.getConnection(function(err, conn) {         	var sql = "SELECT * from myGames;";             conn.query(sql, function(err, rows) {                 var result = returnResult(err, res);                 if (rows) {                     result.message = rows;                 }                 conn.release();                 result.status = res.statusCode;                 res.send(result);             });         });     });      // >> GET/id     app.get("/games/:id", function(req, res) {         var result = {};         // SQL injection attack 방지위해 mysql.escape();         var id = mysql.escape(req.params.id);                  // db에 연결하여 sql 수행         pool.getConnection(function(err, conn) {         	var sql = "SELECT * from myGames WHERE id=" + id + ";";             conn.query(sql, function(err, rows) {                 var result = returnResult(err, res);                 if (rows) {                     result.message = rows;                 }                 conn.release();                 result.status = res.statusCode;                 res.send(result);             });         });     }); } var returnResult = function(err, res) {     // 결과를 눈으로 보기 쉽게하기 위해 result 객체 생성     var result = {};     if (err) {         res.status(400);         result.message = err.stack;     } else {         res.status(200);         result.message = "Success";     }     return result; } | cs | 
이대로 실행을 해 보면 아래 두 URL은 서로 상이한 결과를 불러올 것이다.
http://localhost:3000/games
http://localhost:3000/games/3
결과는 아래와 같다.
- http://localhost:3000/games
- http://localhost:3000/games/3
다음 강의에서는 같은 방법으로 PUT을 구현 해 보도록 하겠다.
'프로그래밍 > JS, Node.js' 카테고리의 다른 글
| Node.js 앱에서 NPM으로 Bootstrap/JQuery 다운 받아 사용하기 (0) | 2017.03.24 | 
|---|---|
| (4) Node.js로 RESTful API 만들기 - DELETE편 (4) | 2017.01.24 | 
| (3) Node.js로 RESTful API 만들기 - PUT편 (0) | 2017.01.24 | 
| (1) Node.js로 RESTful API 만들기 - POST편 (3) | 2017.01.24 | 
| JavaScript 배우기 좋은 사이트 추천 (0) | 2017.01.05 |