Web

Express

supp0rt 2024. 6. 7. 21:47

프론트엔드에서 온 Request를 API를 통해서 받은 뒤, 백엔드에서 데이터를 조회, DB 조회 등 역할을 수행하고 Response를 보내는 웹 프레임 워크를 만들고 사용하는 것

설치

  • npm i express

기본 예제

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

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

app.listen(3000)

설명

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

// HTTP Get 메소드 루트 라우팅 콜백 함수 버전
app.get('/', (req, res) =>{
	res.send('Hello World!')
})

// port 확인 후 log
app.listen(port, () => {
	console.log('Example app listening on port ${port}')
})

app.get(’ / ‘, () ⇒ {})

HTTP 메소드

  • 요청의 목적이나 종류를 알려 주려고 사용하는 수단

라우팅

콜백 함수

  • 다른 코드의 인수로서 넘겨주는 실행 가능한 코드
  • 즉, 함수가 끝나고 실행할 함수를 넘겨줌
  • 함수(파라미터)가 기본 틀이라면, 함수(끝나고 실행할 함수) 형식이다.

ex. setTimeout(() =>{console.log(”5초지남”)}, 5000)

JSON

Javascript Object Notation

사용 예시

app.get('/dog', (req, res) => {
    res.json({'sound': '멍멍'})
})

app.get('/cat', (req, res) => {
    res.json({'sound':'야옹'})
})

GET param / query

app.get('/user/:id', (req,res) =>{
    const param = req.params
    console.log(param)
    res.json({'userid' : param.id})
    // localhost/user/supp0rt
    // => {'userid' : 'supp0rt'}
})
app.get('/user/:id', (req,res) =>{
    const q = req.query
    console.log(q)
    res.json({'param1' : q.q, 'param2' : q.name, 'param3' : q.age})
    // localhost/user/supp0rt?q=supp0rt&name=support&age=20
    // => {'param1' : 'supp0rt', 'param2' : 'support', 'param3' : '20'}
})

POST param / body

app.use(express.json());
app.post('/user/:id', (req, res) =>{
	const p = req.params;
	console.log(p);
	const b = req.body;
	console.log(b);
	
	res.send({'message' : 'Hello World!'});
})

실습

동물소리 API 서버 만들기

  • GET /sound/:name
  • :name 따라서 다른 울음소리
const express = require('express')
const app = express()
const port = 3000

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

app.get('/sound/:name', (req,res) => {
    // req.params가 json타입으로 넘어오기 때문에 {key : value} 형태로 넘어옴
    // key인 name에 해당하는 value를 바로 넣어주기 위해서는 const {name} 형식으로 해주면 바로 저장
    const {name} = req.params
    
    var sound = {'' : ''}

    switch(name){
        case 'cat':
            sound = {'고양이': '야옹'}
            console.log(name)
            break
        case 'dog':
            sound = {'강아지' : '멍멍'}
            console.log(name)
            break
    }
    res.json(sound)
})

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