본문 바로가기

Node

간단한 api, get, post, delete, put

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

app.listen(1234)

let Gan = {
    title : "간다효",
    subscribe : 30000,
    videos : 2000,
}

let Shuu = {
    title : "슈카",
    subscribe : 20000,
    videos : 11,
}

let Chim = {
    title : "침착맨",
    subscribe : 30000,
    videos : 888,
}

let db = new Map()
var id = 1

db.set(id++, Gan)
db.set(id++, Shuu)
db.set(id++, Chim)



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

app.use(express.json())  // json을 받을 수 있도록 해준다. 
app.post('/test', function(req, res){

    // body에 숨어 들어온 정보를 화면에 뿌리자 
    console.log(req.body.message)
    res.send(req.body.message)
})

app.get('/youtubers', function(req, res){
    db.forEach(function(youtuber){
        console.log(youtuber)
    })

    var jsonObject = {}
    
    if (db.size != 0){
        db.forEach(function(value, key){
            jsonObject[key] = value
        });
        res.json(jsonObject);
    }else {
        res.status(404).json({
            message : "조회할 유튜버가 없습니다."
        })
    }
    
})

app.get('/youtubers/:id', function(req, res){
    let {id} = req.params
    id = parseInt(id)

    youtube = db.get(id)
    youtube["id"] = id

    console.log(youtube)
    res.json(youtube)
})

app.post('/youtubers', function(req, res){
    const title = req.body.title
    if (title){
        console.log(req.body)
        db.set(id++, req.body)

        res.status(201).json({
            message : `${db.get(id-1).title}님 유튜브 생활을 응원합니다.`
        })
    } else {
        res.status(400).json({
            message : "요청 값을 제대로 보내세요"
        })
    }

    
})

app.delete('/youtubers/:id', function(req, res){

    let {id} = req.params
    id = parseInt(id)

    const channelTitle = db.get(id).title
    db.delete(id)
    res.json({
        message : `${channelTitle}님 잘 가세요....`
    })
})

app.delete('/youtubers', function(req, res){

    if (db.size >= 1){
        db.clear()
        res.json({
            message : "전체 유튜버 삭제합니다."
        })
    }else{
        res.status(404).json({
            message : "삭제할 내용이 없습니다."
        })
    }
})

app.put('/youtubers/:id', function(req, res){
    let {id} = req.params
    id = parseInt(id)

    var youtuber = db.get(id)

    //console.log(req.body.title)

    if(youtuber == undefined){
        res.json({
            message : `요청하신 ${id}는 없습니다`
        })
    }else{
        console.log(req.body.title)
        //db.get(id).title = req.body.title 이렇게 해도 된다. 
        newTitle = req.body.title
        youtuber.title = newTitle
        db.set(id, youtuber)

        res.json({
            message : `채널 이름을 ${db.get(id).title}으로 변경합니다`
        })
        console.log(db.get(id))
    }
})

 

결과는 postman 앱을깔아서 테스트 해보자

 

 

 

 

const express = require('express')
const app =express()
app.listen(1234)

const fruits = [
    { id : 1, name : 'apple'},
    { id : 2, name : 'orange'},
    { id : 3, name : 'strawberry'},
    { id : 4, name : 'blueberry'}
]

app.get('/fruits', function(req, res){

    res.json(fruits)
})

app.get('/fruits/:id', (req, res) => {
    let {id} = req.params
    id = parseInt(id)

    //let fruit = fruits[id-1]
    //res.json(fruit)

    // var findFruit = ""

    // fruits.forEach(function(fruit){
    //     if (fruit.id == id){
    //         findFruit = fruit
    //     }
    // })


    var findFruit = fruits.find(f => (f.id == id))

    if(findFruit){
        res.json(findFruit)
    } else{
        res.status(404).send(
            "전달해주신 id로 저장된 과일이 없습니다."
        )
    }

    res.json(findFruit)
})

'Node' 카테고리의 다른 글

웹소켓 열기 - websocket, websocket  (0) 2024.08.11
jwt  (0) 2024.08.03
javascript 함수 4가지  (0) 2024.07.28
express generator  (0) 2024.07.28
npm, install, uninstall, let, const, var  (0) 2024.07.27