Node.js 교과서 - 3 TIL

김민지·2023년 10월 31일
0

Node.js

목록 보기
4/8

REST API 서버 만들기

  • 서버의 자원을 정의하고 자원에 대한 주소를 지정하는 방법
  • /user는 사용자에 대한 정보에 관한 처리

HTTP 요청 메서드

get: 서버 자원을 가져오려고 할 때 사용

post: 서버에 자원을 새로 등록하고자 할 때 사용

put: 서버의 자원을 요청에 들어있는 자원으로 치환하고자 할 때 사용(전체 수정)

patch: 서버 자원의 일부만 수정하고자 할 때 사용(부분 수정)

delete: 서버의 자원을 삭제하고자 할 때 사용


POST, PUT, DELETE 요청 보내기


섹션 4. 패키지 매니저

package.json

npm이란

Node Package Manager
노드의 패키지 매니저로 다른 사람들이 만든 소스 코드들을 모아둔 저장소이다.
이미 있는 기능을 다시 구현할 필요가 없어 효율적이다.

노드파일은 package.json부터 만들고 시작함

npm init이 완료되면 package.json이 생성됨


섹션 5. 익스프레스 웹 서버 만들기

express 서버 사용해보기

Express 소개

http 모듈로 웹 서버를 만들 때 코드가 보기 좋지 않고, 확장성도 떨어짐
➡️ 프레임워크로 해결, 대표적으로 expresss, Koa 등이 있다.

  • 코드 관리도 용이하고 편의성이 높아짐

app.js 작성하기

서버 구동의 핵심이 되는 파일이다.

app.set('port', 포트)로 서버가 실행될 포트 지정
app.get('주소', 라우터)로 GET 요청이 올 때 어떤 동작을 할지 지정
app.listen('포트', 콜백)으로 몇 번 포트에서 서버를 실행할지 지정


express로 HTML 서빙하기

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()로 다음 미들웨어로 넘어감

  • 범위가 넓은 라우터들은 순서를 밑에 배치

  • 와일드 카드는 실행하고 싶은 모듈 밑에다 처리

  • '*'은 모든 요청을 의미함. 따라서 제일 넓은 미들웨어라 가장 위에 있으면 모든 요청을 혼자서 처리하고 끝냄.


미들웨어 특성 이해하기

에러 처리 미들웨어

  • app.use('주소',(req, res))
  • 첫 번째 err에는 에러에 관한 정보가 담김
  • 에러 미들웨어는 반드시 4개! (err, req, res, next)
  • 에러 미들웨어는 가장 아래에 위치

next 활용법

next

next를 활용해야 다음 코드로 넘어감


morgan, bodyParser, cookieParser

express에서 bodyParser를 쓰는 사람은 옛날 사람이군.

morgan

서버로 들어온 요청과 응답을 기록해주는 미들웨어

cookieParser

요청 헤더의 쿠키를 해석해주는 미들웨어

  • 쿠키: 서버가 사용자의 웹브라우저에 전송하는 작은 데이터 조각이다.
    페이지가 넘어가면 사라지기 때문에 단순한 데이터만 사용

라우터 분리하기


넌적스 템플릿 엔진

넌적스

주로 서버 측 렌더링을 위해 HTML을 동적으로 생성하는데 사용된다.

그냥 이런게 있다 정도로만 알고 넘어가기

profile
안녕하세요

0개의 댓글