[ 07.02 ] Node.js / express

이숙영·2021년 7월 2일
0

Node.js

목록 보기
4/5
post-thumbnail

Achievement goals

배웠던것, 용어 간단정리

Node.js

const http = require('http');

OPTIONS

preflight(사전요청) 시 쓰이는 메소드.
CORS 관련 응답헤더로서 쓰이는것.
상대방의 요청이 되는지 안되는지 간보는것이라고 볼 수 있다
사전요청시 밑의 네가지는 반드시 OPTIONS 에 붙어다녀야한다.

받을 response 로는
1. 응답코드(200,404...)
2. 헤더(res.writehead)
3. 바디(res.end)
이 세가지가 반드시 있어야 한다.

GET / POST

OPTIONS 와의 거래가 성사되었으면 (preflight) 본격 요청을 보낸다.
이때 필요한 네가지 조건은
1. req.method (GET / POST ..)
2. req.url
3. 헤더 (res.writehead)
4. 바디 (res.end)
사실 OPTIONS 가 아닐때 CORS 헤더 네가지가 다 필요한것은 아니다.
하지만 ORIGIN 만큼은 반드시 있어야 동작함!
(Access-Control-Allow-Origin : '*' //전체 origin)

request.on('data'/'end',function(){})

addEventListenr 같은 구조다.
addEventListenr('click',funciton(){~~}) 하면 클릭시 콜백함수가 작동하는것처럼,
노드에서는 on 메소드가 끝나면 요청에서 데이터가 올때마다 콜백함수를 부르겠다는 뜻이다.
여기서 바디에 해당하는 data 는 여러번 올 수 있고
end 는 끝나는것이므로 한번만 온다.
end에서 쓰인 Buffer 는 우리가 흔히 알고있는 버퍼링.
각 버퍼들이 스트림에 흐르고 있다가 버퍼들(chunk)이 쌓이면 하나의 데이터가 된다고 한다.
뭐 예를들어 유튭 동영상 보다가 버퍼링생길때 각 청크가 차곡차곡 쌓이는 중인데 그 청크들이 다 쌓이면 동영상이 다시 재생되는 구조와 비슷하다.


CORS

아무 클라이언트나 받아가게 하지 못하려고 CORS 정책을 만들어놨다.
요청은 같은 ORIGIN 일때만 가능함.(SOP)

Same Origin Policy(SOP)

같은 origin 의 조건 세가지는
1. 프로토콜(http,https)
2. 도메인(www.google.com)
3. 포트(3000,3001..)


express

위의 node.js 를 좀 더 편리하게 쓸 수 있는 프레임워크다.
const express = require('express')
const app(다른거도 상관없음) = express()

app이라는 변수에 express 를 담아두어
관련 메소드를 작성해주면 된다.

편리성의 예를 들자면,
CORS 를 사용 할 때 노드.js 에서는 네가지 조건들을 모두 작성해야 했지만 express 에서는 npm i cors 모듈을 받아

const cors = require('cors');
app.use(cors());

이렇게쓰면 끝이다.
뭐 다 대충 이런식이다.
그리고 res.write, res.end 가 쌍으로 같이 다녔던 node.js 와 달리 express , app 에 이미 담겨져 있기 때문에 매번 안써주고 로직만 맞게 작성해주면 된다.

body.parser
현재 있는 데이터를 제이슨 포맷으로 읽을 수 있게 하는것

req.body
현재 온 데이터를 확인할 수 있다. (내가 요청한 바디)
보통 POST 와 같이쓰이는 듯 하다.

졸려. 자러간다. 오늘공부끗,

profile
FrontEndDeveloper

0개의 댓글