🎯 Achievement Goals


  • express 라이브러리가 어떤 작업을 단순하게 만드는지 이해할 수 있다.
  • 미들웨어의 개념을 이해할 수 있다.





👉 express


오늘은 node.js를 더 편리하게 사용하게끔 도와주는 express에 대해서 공부를 했다.

확실히 http모듈보다 훨씬 사용하기가 쉬웠다. 오늘은 간단하게 맛보기로만 공부를 해서 그런지, 금방 끝낼 수 있었다.



npm을 이용하여 모듈 설치하기


$ npm install express --save
$ npm install body-parser --save
$ npm install cors --save


모듈을 다 설치한 후에 본격적으로 리팩토링을 시작하였다.




CORS


const cors = require('cors')

// 모든 요청에 CORS를 허용한다.
app.use(cors());




GET


// http 모듈
if (request.url === '/messages' && request.method === 'GET') {
  response.writeHead(200, headers);
  response.end(JSON.stringify(obj));
}

// express
app.get('/messages', (req, res) => {
  res.status(200).send(message);
})




POST


// http 모듈
else if (request.url === '/messages' && request.method === "POST") {
  let body = [];
  request.on("data", (chunk) => {
    body.push(chunk);
  }).on("end", () => {
    body = Buffer.concat(body).toString();
    obj.results.push(JSON.parse(body))
  })
  response.writeHead(201, headers);
  response.end("test");
}

//express
app.post('/messages', jsonParser, (req, res) => {
  message.results.push(req.body);
  res.status(201).send(message)
})



express 를 사용하니까 훨씬 간결해지고 편했다. Express.jsNode.js환경에서 API를 제작하기 위해 사용되는 인기있는 프레임워크이다. 가장 큰 장점은

  • 미들웨어를 붙이기 쉽다.
  • 자체 라우터를 제공한다.






👉 미들웨어


미들웨어


미들웨어란 간단하게 말하자면, 요청(req)과 응답(res)의 권한을 가지고 있는 것이다. 만약 원하지 않는 요청이라면 밖으로 걷어낸다.



자주 쓰이는 미들웨어


  • 모든 요청에 대해 url이나 메소드를 알고자 할 때
  • POST 요청 등에서 쓰이는 body(payload)를 쉽게 얻어내고자 할 때
  • 모든 요청/응답에 CORS 헤더를 붙일 때
  • 요청 헤더에 사용자 인증 정보가 담겨있는지 확인하고 싶을 때







🙌 느낀점


오늘은 express 프레임워크에 대해 간단하게 알아보고 실습하는 시간을 가졌다. 확실히 편리하기 때문에 어제 배웠던 http 모듈보다 사용하기가 훨씬 수월했다. 그래서 재밌고 빠르게 할 수 있었던 것 같다.

하지만 나머지 서버를 만드는 과정은 정말 복잡하고 정리가 안된다. 복습을 계속 해야하는데 서버를 만드는 과정은 정말 막막했다. 삽질하는 과정이 정말 많았다. 이번주 개념을 다시 잡아보자!

내일은 그동안 틈틈이 배웠던 리액트를 배우게 된다. 잘 해낼 수 있었으면 좋겠다.



👊 내일의 TIW(today I Will)

React