get: 서버 자원을 가져오려고 할 때 사용
post: 서버에 자원을 새로 등록하고자 할 때 사용
put: 서버의 자원을 요청에 들어있는 자원으로 치환하고자 할 때 사용(전체 수정)
patch: 서버 자원의 일부만 수정하고자 할 때 사용(부분 수정)
delete: 서버의 자원을 삭제하고자 할 때 사용
Node Package Manager
노드의 패키지 매니저로 다른 사람들이 만든 소스 코드들을 모아둔 저장소이다.
이미 있는 기능을 다시 구현할 필요가 없어 효율적이다.
노드파일은 package.json부터 만들고 시작함
npm init이 완료되면 package.json이 생성됨
http 모듈로 웹 서버를 만들 때 코드가 보기 좋지 않고, 확장성도 떨어짐
➡️ 프레임워크로 해결, 대표적으로 expresss, Koa 등이 있다.
서버 구동의 핵심이 되는 파일이다.
app.set('port', 포트)로 서버가 실행될 포트 지정
app.get('주소', 라우터)로 GET 요청이 올 때 어떤 동작을 할지 지정
app.listen('포트', 콜백)으로 몇 번 포트에서 서버를 실행할지 지정
app.js
const express = require('express');
const path = require('path');
const app = express();
app.set('port', process.env.PORT || 3000);
app.get('/', (req, res) => {
res.sendFile(path.join(___dirname, 'index.html'));
});
app.post('/', (req, res) => {
res.send('hello express');
});
app.get('/about', (req, res) => {
res.send('hello express');
});
app.listen(app.get('port'), () => {
console.log('익스프레스 서버 실행');
});
중복을 제거하기 위함
요청과 응답의 중간에 위치
주소를 직접 지정할 수 있음
app.use(미들웨어) 장착
위에서 아래로 순차적 처리
미들웨어는 req, res, next가 매개변수인 함수
req: 요청, res: 응답 조작 가능
next()로 다음 미들웨어로 넘어감
범위가 넓은 라우터들은 순서를 밑에 배치
와일드 카드는 실행하고 싶은 모듈 밑에다 처리
'*'은 모든 요청을 의미함. 따라서 제일 넓은 미들웨어라 가장 위에 있으면 모든 요청을 혼자서 처리하고 끝냄.
next를 활용해야 다음 코드로 넘어감
express에서 bodyParser를 쓰는 사람은 옛날 사람이군.
서버로 들어온 요청과 응답을 기록해주는 미들웨어
요청 헤더의 쿠키를 해석해주는 미들웨어
주로 서버 측 렌더링을 위해 HTML을 동적으로 생성하는데 사용된다.
그냥 이런게 있다 정도로만 알고 넘어가기