[SEB_FE_44] Web Server(2) - Express

유영준·2023년 4월 5일
post-thumbnail

오늘 배운 주제


  • Express
  • Mini Node Server Express 리팩토링

오늘 배운 내용


  • Routing

메서드와 url(/lower, /upper 등)로 분기점을 만드는 것

const router = express.Router()

router.get('/lower', (req, res) => {
  res.send(data);
})

router.post('/lower', (req, res) => {
  res.send(data);
})
  • 미들웨어
  1. POST 요청 등에 포함된 body(payload)를 구조화할 때(쉽게 얻어내고자 할 때)
const jsonParser = express.json({strict: false});

// 생략
app.post('/api/users', jsonParser, function (req, res) {

})
  1. 모든 요청/응답에 CORS 헤더를 붙여야 할 때
const cors = require('cors');

// 생략
app.use(cors());
  1. 모든 요청에 대해 url이나 메서드를 확인할 때
const express = require('express');
const app = express();

const myLogger = function (req, res, next) {
  console.log('LOGGED');
  next();
};

app.use(myLogger);

app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.listen(3000);
  1. 요청 헤더에 사용자 인증 정보가 담겨있는지 확인할 때
app.use((req, res, next) => {
  // 토큰이 있는지 확인, 없으면 받아줄 수 없음.
  if(req.headers.token){
    req.isLoggedIn = true;
    next();
  } else {
    res.status(400).send('invalid user')
  }
})

오늘의 과제


Mini Node Server - Express

  • basic-server.js
const express = require('express')
const app = express()
const port = 4999
const cors = require('cors');

app.use(express.json({strict: false}));
app.use(cors());

app.post('/lower', (req, res) => {
  // do something
  let result = req.body;
  result = result.toLowerCase();
  res.json(result);
})  
  
app.post('/upper', (req, res) => {
  // do something
  let result = req.body;
  result = result.toUpperCase();
  res.json(result);
  })

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})

오늘 챕터에서 아쉬웠던건 Express에 대한 설명이 부족했다는 점이다.

정확히는 과제에 대한 Express 설명이 부족했음

리팩토링부분은 아직 이해 x 이번 주말에 복습 꼭하자

profile
프론트엔드 개발자 준비 중

0개의 댓글