글 목차
(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 |