[SOPT] # 3rd Seminar - HTTP, EXPRESS, EC2

✨New Wisdom✨·2020년 11월 1일
0

📗 Nodejs 📗

목록 보기
19/20
post-thumbnail

HTTP

Hyper Text Transfer Protocol
: 웹에서 클라이언트와 서버가 데이터를 주고 받을 수 있는 프로토콜
이런 프로토콜이 존재하기에 웹에서 이 규칙에 맟춰 정보를 교환할 수 있다.

🚩 HTTP Method

POST
create(생성)
Request Body ⭕️

GET
Read(조회)
Request Body ❌

PUT
Update(수정)
Request Body ⭕️

DELETE
Delete(삭제)
Request Body ❌

🚩 HTTP Status Code

Status Code
HTTP 응답 상태 코드
HTTP 요청이 성공적으로 완료되었는지 알려준다.

200 : 성공.
204 : 성공. 전달해줄 응답 데이터는 없음.
304 : 캐시 목적. 요청 이후 수정된 것이 없음.

400 : 서버가 요청을 이해하지 못함.
401 : 인증이 필요.
404 : 페이지, 리소스를 찾을 수 없음.
500 : 서버 내부 오류.

🚩 HTTP로 어떻게 데이터를 전송할까?

url

param

부가적인 정보를 전송
ex) 토큰, 쿠키

body

XML, JSON, Multi Form 등의 데이터

Express

웹 및 모바일 애플리케이션을 위한 Nodejs 웹 애플리케이션 프레임워크

  • HTTP 요청에 대해 라우팅 및 미들웨어 기능 제공
  • NPM 을 사용해 수 천만개의 재사용 가능한 패키지에 접근 가능

🚩 Express 프로젝트 만들기

express, express-generator 설치

npm install -g express express-generator

express 프로젝트 생성 / 실행

express 3rd-seminar
cd 3rd-seminar
npm start

🚫 바로 실행하면 에러가 난다 🚫
express-generator 로 프로젝트 초기 생성 시 pakage.json에
의존하고 있는 패키지 정보를 명시해주는데 이 모듈들이 설치가 안돼있어서 에러가 난다!
모듈부터 설치해주자🙃

npm install

🚩 express 프로젝트 구조

bin / www

익스프레스 설정 파일인 app.js 파일을 가져와 http 객체와 연결시키는 작업을 함.
서버 구동할 때는 이 파일을 실행시킴.
여기서 port 번호 변경 가능.

node_modules

모듈을 설치하면 이 곳에 저장된다.

public

이미지, css, JS 파일을 저장하는 곳

routes

라우팅을 위한 폴더.
리소스 별로 라우팅을 구현함.
routing
URI(또는 경로) 및 특정한 HTTP 요청 메소드(GET, POST 등)인 특정 엔드포인트에 대한 클라이언트 요청에
애플리케이션이 응답하는 방법을 결정하는 것을 뜻함.

router.MRTHOD('path',(req, res) => {/*logic*/});
  • METHOD : HTTP 요청 메소드 (GET, POST 등)
  • path : 서버에 접근할 경로
  • req : request로 전달 받은 객체 데이터가 담겨 있음.
  • res : response로 전달 할 데이터를 담음.

클라이언트는 서버에 req를 보낼 때 req 패킷에 많은 정보를 포함시켜 보내는데,
서버에서는 req 패킷에 담긴 데이터들을 다음과 같이 뽑아올 수 있다.

  • req.header
  • req.file
  • req.query
  • req.params
  • req.body

views

jade, ejs 등의 템플릿 엔진을 모아둠.
웹 서버 사용 시 해당 폴더의 파일들을 사용해서 렌더링.

app.js

프로젝트의 중심.
미들웨어 관리가 이루어진다.
라우팅의 시작점.

미들웨어
미들웨어란 서버가 요청-응답 과정을 하는 동안 중간에 어떠한 동작을 해주는 함수.
app.use() 안에 있는 모든 함수들은 미들웨어.
request가 올 때마다 이 미들웨어를 거쳐서 response를 보낸다.

pakage.json

프로젝트의 정보를 정의하고 의존하는 패키지 정보를 명시하는 파일.
npm install 명령을 통해 의존하는 패키지 모두 설치 가능.

🚩 🍯 tip

  1. Key - Value 쌍으로 되어있는 객체는 Key - Value 값이 같으면 value 값 생략 가능!
const {name, part, age} = req.body;

==

const name = req.body.name;
const part = req.body.part;
const age = req.body.age;

비 구조화 할당을 통해 req.body 객체 안에 있는 값을 추출해서 사용 가능하다.

profile
🚛 블로그 이사합니다 https://newwisdom.tistory.com/

0개의 댓글