MYSQL 설치 (MySQL Workbench)
대충 블로그 따라서 DB생성
EXPRESS 웹서버에 연동하려 NPM 설치
대충 뭐 config파일에 DB정보 입력해서 연결하는거 같음
유저 등록해야된다고 해서 서버연동까진 안함 귀찮
이 이후는 https://1-day-1-coding.tistory.com/51 해당 페이지 가서 확인하자.
대충 요약하자면
ㄱ-1. Express 웹 서버 실행.
ㄱ-2. MySQL 데이터베이스 Configuration 추가.
ㄱ-3. 'Customer'라는 샘플 모델 생성 후 컨트롤러 작성.
ㄱ-4. CRUD 작업을 처리하기 위한 routes를 정의:
Methods Urls Actions
GET /customers 모든 Customers 조회
GET /customers/:id id 로 Customers 조회
POST /customers Customers 생성
PUT /customers/:id id로 Customers 수정
DELETE /customers/:id id로 Customers 삭제
DELETE /customers 모든 Customer 삭제
ㄱ-5. Postman을 사용해서 Restful API 테스트
ㄴ-1.$ cd nodejs-express-mysql
ㄴ-2.
$ npm init
package name: (nodejs-express-mysql)
version: (1.0.0)
description: Node.js Restful CRUD API with Node.js, Express and MySQL
entry point: (index.js) server.js
test command:
git repository:
keywords: nodejs, express, mysql, restapi
author: noohk329
license: (ISC)
Is this OK? (yes) yes
ㄴ-3.
Express, mysql, body-parser 모듈을 설치한다.
$ npm install express mysql body-parser --save
ㄴ-4. 환경 세팅을 마친 후 package.json 파일은 다음과 같이 생성이 되어있다.
{
"name": "nodejs-express-mysql",
"version": "1.0.0",
"description": "Node.js Restful CRUD API with Node.js, Express and MySQL",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"nodejs",
"express",
"mysql",
"restapi"
],
"author": "noohk329",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"express": "^4.17.1",
"mysql": "^2.18.1"
}
}
ㄷ-1.root floder 에 server.js 파일을 생성하고 다음과 같이 작성한다.
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.get("/", (req, res)=>{
res.json({message: "Hello World!"});
});
// 포트넘버 설정
app.listen(3000, ()=>{
console.log("Server is running on port 3000.");
})
ㄷ-2. Express, bodyParser 모듈 import. (Express: Restapi 구축을 위한 프레임워크 / Body-parser: request를 분석하고, routes에 엑세스 해야 하는 req.body 개체를 만들기 위해 사용)
ㄷ-3 express app을 만든다음 app.use()를 사용해서 body-parser 미들웨어 추가
ㄷ-4 테스트 하기 쉽게 간단한 get 경로 정의
ㄷ-5 포트 3000에서 request 요청 수신
ㄷ-6 VS code 터미널에서 다음 명령어를 입력해서 실행한다.
$ node server.js
ㄷ-7. 웹 브라우저에서 http://localhost:3000/ 에 접속하면 정상적으로 실행되는 것을 볼 수 있다.
ㄷ-1. app/config 폴더를 생성하고 db.config.js 파일을 생성한다. 파일에는 다음과 같이 작성한다. user-계정, password-설정한 비밀번호, DB-스키마
module.exports = {
HOST: "localhost",
USER: "root",
PASSWORD: "123456",
DB: "new_db"
};
ㄷ-2. configuration 파일으로 mysql과 연동하는 부분을 작성할 차례!
app/models 폴더 생성 후 db.js 파일을 생성한다.
ㅁ-1.HTTP 요청(GET, POST, PUT, DELETE)을 받았을 때 어떻게 응답할지 route 정의하는 것!
/customers: GET, POST, DELETE
/customers/:customerID: GET, PUT, DELETE
ㅁ-2. app/routes 폴더 생성하고 customer.routes.js 파일을 작성한다.
module.exports = app =>{
const customers = require("../controllers/customer.controller.js");
// 튜플 생성
app.post("/customers", customers.create);
// 전체 조회
app.get("/customers", customers.findAll);
// id로 조회
app.get("/customers/:customerId", customers.findOne);
// id로 수정
app.put("/customers/:customerId", customers.update);
// id로 삭제
app.delete("/customers/:customerId", customers.delete);
// 전체 삭제
app.delete("/customers", customers.deleteAll);
};
ㅂ-1. app/controller 폴더를 생성하고 customer.controller.js 파일을 작성한다. 컨트롤레 안에 CRUD function을 구현할 것임.
뭐 대충 컨트롤러 안에 CRUD function 구현하는거래
내가 이해한바는 대충 뭐 DB엔 테이블 형식으로 데이터를 만들어 저장한다.
그리고 노드든 AWS든 뭐든 서버 구성하고 킨다음 만들어놓은 DB 연동한다.
그리고 뭐 컨트롤런지 뭔지에다 DB에 저장된 데이터 CRUD 할 수 있게 CURD function 만든다.
그럼 만드는건 다 끝나는거 같다.
이제 그 만든게 잘 돌아가는지 테스트 하고 끝인거 같다.
대충 뭐 백단에서 데이터가 어케 돌아가고 만들어지고 쓰는지 대충 알게된거 같다.
DB는 여기까지.끝