코드스테이츠 8주차 / Node.js Express

support·2022년 1월 2일
0
post-thumbnail

http 모듈로 웹서버를 만들면 코드가 보기 좋지 않고 확장성이 떨어지기 때문에 프레임워크로 해결한다
대표적인 것이 Express(익스프레스), koa(코아), Hapi(하피)가 있다
프레임 워크를 사용하면 코드 관리도 쉽고 편의성이 높아진다

npm trends 홈페이지에 가서 어떤 프레임 워크가 많이 사용되는 지 볼 수 있다

어떤 프레임 워크를 사용할 지 고민이 될때는
1 다운로드 수
2 업데이트 날짜
3 깃헙에 들어가서 최근활동 날짜
를 보고 선택 할 수 있다

노드에서는 익스프레스가 압도적으로 많이 사용된다

Express 공식문서를 보고 http보다 간단하게 웹 서버를 만들 수 있다
Express 공식문서 설치
Express 공식문서 예제

Express 사용방법

위의 공식문서 설치를 따라해 npm init으로 애플리케이션에 대한 package.json 파일을 작성하고
npm install express --save로 Express를 설치하면 된다

app.js 라는 파일을 작성한 뒤에 코드를 추가하고 node app.js 를 사용해 앱을 실행하면
Hello World!가 적혀있는 웹사이트가 나온다

const express = require('express')
const app = express()
const port = 3000

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

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

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
})

다른 부분은 비슷한데 get ,/
http 메서드랑 url이 밖으로 꺼내져 있기 때문에
if문으로 여러개를 작성하지 않아도
app 에다가 메서드를 붙여주는 방식으로 바로 구별하고 수정이 가능하다

📝summary

node.js의 http 모듈을 이용하여 웹 서버를 만들었던
Mini Node Server를 Express를 사용해서 리팩토링 해보자

express.json
Express에 내장된 미들웨어 기능이다
JSON 페이로드로 들어오는 요청을 구문 분석하고 body-parser를 기반으로 한다
strict 이 true 면 배열이나 객체일때만 JSON.parse 수락
false 면 모든 값을 JSON.parse 수락한다
json은 object이기 때문에 다른 데이터 타입도 허용해주기 위해서 false로 적용을 해줘야 한다

const express = require('express') 
const app = express()
const cors = require('cors')

app.use(cors()) // 모든 요청에 cors 허용
//npm install cors --save 터미널에서 설치
app.use(express.json({strict : false}))
// const jsonParser = express.json({
//   strict: false
// })
// jsonParser를 변수로 선언해 하나씩 넣어줘도 되고
// 위처럼 모든 요청에 적용할 수도 있다 

const port = 4999




app.get('/', (req, res) => {
  res.send('hello world')
})


app.post('/lower', (req, res) => {
  res.json(req.body.toLowerCase())
})

app.post('/upper' , (req, res) => {
  res.json(req.body.toUpperCase())
})


app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
})


미니노드서버에 가서 npx serve -l 4000 번으로 열어준뒤

4000번 포트로 가서 보면 http://localhost:4999/upper로 연결하라고 에러메세지가 뜬다
그럼 새로 작성한 express 서버에 가서 포트를 4999로 열어주게 되면 전과 같이 동작하는 페이지를 만들 수 있다

0개의 댓글