PROGRAMING/FULL STACK

[Back End] Upvoting articles

donghunl 2024. 3. 16. 04:57
반응형

블로그 페이지에 "좋아요" 를 표시해 보겠습니다.

 

현재는 DB에 글들이 연결되어 있지 않고 메모리에서 작동하는 방식으로 먼저 구현을 하고 나중에 DB와 연결하는 과정을 다시 해보겠습니다.

Upvoting 즉 좋아요를 구현하기 위해서 PUT request를 사용합니다. 코드는 아래와 같습니다.

server.js

import express from 'express';

// Use temporary
let articlesInfo = [{
    name: 'learn-react',
    upvotes: 0,
}, {
    name: 'learn-node',
    upvotes: 0,
}, {
    name: 'mongodb',
    upvotes: 0,
}]

const app = express();
app.use(express.json())

app.post('/hello', (req, res) => {
    res.send(`Hello! ${req.body.name}!`);
});

app.get('/hello/:name', (req, res) => {
    //const name = req.params.name;
    const { name } = req.params; // object destructuring for littl bit shorter code.
    res.send(`Hello ${name}!!`);
});

app.get('/hello/:name/GoodBye/:otherName', (req, res) => {
    const { name, otherName } = req.params; // object destructuring for littl bit shorter code.
    res.send(`Hello ${name}!! Good Bye ${otherName}!!`);
});

// upvoting put reqeust
app.put('/api/articles/:name/upvote', (req, res) => {
    const { name } = req.params;
    const article = articlesInfo.find(a => a.name === name);

    if (article) {
        article.upvotes += 1;
        res.send(`The ${name} article now has ${article.upvotes} upvotes`);
    } else {
        res.send('That article doesn\'t exist');
    }
});

app.listen(8000, () => {
    console.log('Server is listening on port 8000');
});

 

Postman을 통해 확인한 결과입니다.

 

리퀘스트를 할때마다 voting 카운트가 올라갑니다.

반응형