Hyper Text Transfer Protocol
: 웹에서 클라이언트와 서버가 데이터를 주고 받을 수 있는 프로토콜
이런 프로토콜이 존재하기에 웹에서 이 규칙에 맟춰 정보를 교환할 수 있다.
POST
create(생성)
Request Body ⭕️
GET
Read(조회)
Request Body ❌
PUT
Update(수정)
Request Body ⭕️
DELETE
Delete(삭제)
Request Body ❌
Status Code
HTTP 응답 상태 코드
HTTP 요청이 성공적으로 완료되었는지 알려준다.
200 : 성공.
204 : 성공. 전달해줄 응답 데이터는 없음.
304 : 캐시 목적. 요청 이후 수정된 것이 없음.
400 : 서버가 요청을 이해하지 못함.
401 : 인증이 필요.
404 : 페이지, 리소스를 찾을 수 없음.
500 : 서버 내부 오류.
param
부가적인 정보를 전송
ex) 토큰, 쿠키
XML, JSON, Multi Form 등의 데이터
웹 및 모바일 애플리케이션을 위한 Nodejs 웹 애플리케이션 프레임워크
npm install -g express express-generator
express 3rd-seminar
cd 3rd-seminar
npm start
🚫 바로 실행하면 에러가 난다 🚫
express-generator 로 프로젝트 초기 생성 시 pakage.json에
의존하고 있는 패키지 정보를 명시해주는데 이 모듈들이 설치가 안돼있어서 에러가 난다!
모듈부터 설치해주자🙃
npm install
익스프레스 설정 파일인 app.js 파일을 가져와 http 객체와 연결시키는 작업을 함.
서버 구동할 때는 이 파일을 실행시킴.
여기서 port 번호 변경 가능.
모듈을 설치하면 이 곳에 저장된다.
이미지, css, JS 파일을 저장하는 곳
라우팅을 위한 폴더.
리소스 별로 라우팅을 구현함.
routing
URI(또는 경로) 및 특정한 HTTP 요청 메소드(GET, POST 등)인 특정 엔드포인트에 대한 클라이언트 요청에
애플리케이션이 응답하는 방법을 결정하는 것을 뜻함.
router.MRTHOD('path',(req, res) => {/*logic*/});
클라이언트는 서버에 req를 보낼 때 req 패킷에 많은 정보를 포함시켜 보내는데,
서버에서는 req 패킷에 담긴 데이터들을 다음과 같이 뽑아올 수 있다.
jade, ejs 등의 템플릿 엔진을 모아둠.
웹 서버 사용 시 해당 폴더의 파일들을 사용해서 렌더링.
프로젝트의 중심.
미들웨어 관리가 이루어진다.
라우팅의 시작점.
미들웨어
미들웨어란 서버가 요청-응답 과정을 하는 동안 중간에 어떠한 동작을 해주는 함수.
app.use()
안에 있는 모든 함수들은 미들웨어.
request가 올 때마다 이 미들웨어를 거쳐서 response를 보낸다.
프로젝트의 정보를 정의하고 의존하는 패키지 정보를 명시하는 파일.
npm install
명령을 통해 의존하는 패키지 모두 설치 가능.
const {name, part, age} = req.body;
==
const name = req.body.name;
const part = req.body.part;
const age = req.body.age;
비 구조화 할당을 통해 req.body 객체 안에 있는 값을 추출해서 사용 가능하다.