Express 프레임워크 설치와 사용

npm i express

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

app.get('/', function (req, res) { // http method, 라우팅, 콜백함수 순서로 구성
  res.send('Hello World') // 응답에 hello world를 담아 보내겠다
})

app.listen(port) // 듣고 있는 포트 번호

실행은 index.js에 만든 파일일 때 node index.js

예제 API 만들어보기

특정 라우터로 들어갔을 때 html, json을 반환해보자.

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

// html 전송
app.get('/cat', function (req, res) {
  res.send('<h1>Hello World</h1>') 
})

// json 전송
app.get('/dog', function (req, res) {
  res.json({ 'sound': '멍멍' }) // send랑 보이는 모습은 같지만 json으로 전달하면 명시적이고 효율적으로 전달 가능
})

app.listen(port)

request에 정보가 담긴 경우 params, query를 이용해 알 수 있음 (변수로 받는 방식).

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

// params
app.get('/user/:id', function (req, res) {
	const { id } = req.params
  res.json({ 'userId': id }) 
})

//query
app.get('/user/:id', function (req, res) {
	const { query } = req
  console.log(query) // localhost/user/hello?age=12&name=world 일 때 { age: '12', name: 'world' }
})

app.listen(port)

post의 경우 req의 body에 값이 담김.

동물 소리 API 만들기 실습

/sound/:name에 들어갔을 때 알맞는 동물 소리 보여주기

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

app.get('/user/:name', function (req, res) {
	const { name } = req.params

	if(name === 'dog') {
		res.json({ '멍멍' })
	} else if(name === 'cat') {
		rres.json({ '야옹' })
	} else {
		res.json({ '알 수 없음' })
	}
})

app.listen(port)

만약 프론트 쪽에서 name의 입력을 받는 input을 만든다 하면 다음과 같은 형태가 될 수 있음.

Untitled