방명록
- [개발자의품격][부트캠프][1기][30차시] Node.js #2 | Express 설치 | 라우팅(GET, POST) | MySQL 연동2022년 04월 07일 12시 03분 50초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
| Express
Express 설치
터미널 창에서 아래 명령어를 실행하여 "package.json" 파일을 생성한다.
npm init
Express를 설치한다.
npm i express
생성된 "package.json"은 다음과 같다.
// package.json { "name": "node", "version": "1.0.0", "description": "", "main": "10_app.js", "scripts": { "test": "node 10_app.js" }, "author": "Sewol", "license": "ISC", "dependencies": { "express": "^4.17.3", } }
express로 웹 서버 구동
// express const express = require("express"); const app = express(); app.listen(3000, () => { console.log("서버가 포트 3000번으로 시작되었습니다."); });
| 라우팅
... // http://localhost:3000 app.get("/", (req, res) => { // req는 클라이언트의 request 객체, res는 서버의 response 객체 res.send("Hello World"); });
GET
... app.get("/customers", (req, res) => { const customers = [ { name: "Sewol", email: "sewol@gmail.com" }, { name: "ilnam", email: "ilnam@gmail.com" }, ]; res.send(customers); });
※ Postman에서 get, post 실습 진행
POST
// express const express = require("express"); const app = express(); app.use( express.json({ limit: "50mb", }) ); ... app.post("/customers", (req, res) => { console.log(req.body.param); res.send("Ok"); });
| MySQL 연동
MySQL Workbench 권한 설정
MySQL 설치
npm i mysql
관련 코드 작성
pool과 쿼리문을 실행하고 결과를 반환하는 함수를 mysql/index.js에 작성한다.
// mysql/index.js const mysql = require("mysql"); const sql = require("./sql"); // 쿼리문 sql.js를 가져온다. const pool = mysql.createPool({ host: "localhost", port: 3306, user: "dev", password: "1234", database: "dev", connectionLimit: 10, }); /* 쿼리문을 실행하고 결과를 반환하는 함수 */ const query = async (alias, values) => { return new Promise((resolve, reject) => pool.query(sql[alias], values, (error, results) => { if (error) { // 에러가 발생 console.log(error); reject({ error, }); } else resolve(results); // 쿼리 결과를 전달 }) ); }; module.exports = { query, };
사용할 쿼리문을 담은 mysql/sql.js를 작성한다. 앞에서 작성한 index.js에서 이용된다.
// mysql/sql.js module.exports = { categoryList: `select * from product_category`, categoryInsert: `insert into product_category set ?`, };
웹 서버 구동을 위한 코드를 작성한다. 앞에서 작성한 index.js를 이용한다.
// 11_app_mysql.js const express = require("express"); const app = express(); const mysql = require("./mysql"); app.use( express.json({ limit: "50mb", // 최대 50메가 }) ); // 클라이언트 요청 body를 json으로 파싱 처리 app.listen(3000, () => { console.log("서버가 포트 3000번으로 시작되었습니다."); }); app.get("/api/product/category", async (req, res) => { const categoryList = await mysql.query("categoryList"); res.send(categoryList); }); app.post("/api/product/category", async (req, res) => { const result = await mysql.query("categoryInsert", req.body.param); res.send(result); });
GET 테스트를 통해 MySQL로부터 데이터를 가져온 것을 [그림 6-2]와 같이 확인할 수 있다.
728x90반응형'영광의 시대! > 2022 개발자의 품격 부트캠프 1기' 카테고리의 다른 글
다음글이 없습니다.이전글이 없습니다.댓글