TIL | C.R.U.D 활용 예시

Wook·2021년 12월 15일
0

TIL | Backend

목록 보기
2/19

1. Read

const sendPosts = (req, res) => {
  res.json({ // 위에서 작성한 sendPosts 함수와 비교했을 때,
  // express 덕분에 JSON.stringify 함수를 사용할 필요없이
  // response 객체의 json 메소드를 활용합니다.
    products: [
      {
        id: 1,
        title: 'node',
        description: 'node.js is awesome',
      },
      {
        id: 2,
        title: 'express',
        description: 'express is a server-side framework for node.js',
      },
    ],
  })
}

module.exports = { sendPosts } // routing.js 에서 사용하기 위해 모듈로 내보낸다.

2. Create

postings.js

const createProduct = (req, res) => {
  const products = [] // 임의의 빈 배열에다가 상품 정보를 저장하겠습니다.
  console.log('Request body: ', req.body) // client로 부터 받은 정보를 확인합니다.
  const { title, description } = req.body // client로 부터 전달받은 정보를 활용합니다
  const product = {
//  id : uuid.uuid()  // 추가사항
    title : title,
    description : description
  } // 전달 받은 키를 이용해 객체를 만듭니다.
  
  products.push(product) // 새로만든 객체를 상품 정보 배열에 추가해줍니다.
  res.json({ data: products }) // 새로 생성된 배열을 client에게로 반환해줍니다.
}

module.exports = { sendPosts, createProduct } 
// routing.js 에서 사용하기 위해 모듈로 내보낸다.

server.js

app.post('/signup', () => console.log('signed up!')) // 첫번째 인자에는 endpoint url 을 기입하고,
app.post('/login', () => console.log('logged in!')) // 각각의 요청에 대해 핸들링 하는 함수를 두번째 인자로 넣습니다.
app.get('/products', sendPosts)
app.post('/products', createProduct) // <<----- routing을 추가해줍니다 :)

3. Update

postings.js

const updatePost = (req, res) => {
  const products = [
    {
      id: 1,
      title: 'node',
      description: 'node.js is awesome',
    },
    {
      id: 2,
      title: 'express',
      description: 'express is a server-side framework for node.js',
    },
  ]
  const { id } = req.body
  const posting = postings.filter((posting) => posting.id === id)
  posting.title = "new title"

  res.json({ data: products })
}

module.exports = { sendPosts, createPost, updatePost }

server.js

app.post('/signup', () => console.log('signed up!')) // 첫번째 인자에는 endpoint url 을 기입하고,
app.post('/login', () => console.log('logged in!')) // 각각의 요청에 대해 핸들링 하는 함수를 두번째 인자로 넣습니다.
app.get('/products', sendPosts)
app.post('/products', createProduct)
app.put('/products', updatePost) // <<----- routing을 추가해줍니다 :)

4. Delete

postings.js

const deletePost = (req, res) => {
  const postings = [
    {
      id: 1,
      title: 'node',
      description: 'node.js is awesome',
    },
    {
      id: 2,
      title: 'express',
      description: 'express is a server-side framework for node.js',
    },
  ]
  const { id } = req.body

  for (let i = 0; i < postings.length; i++) {
    const posting = postings[i]
    if (posting.id === id) {
      delete posting[i]
    }
  }
  return res.json({ data: postings })
}

module.exports = { sendPosts, createPost, updatePost, deletePost }

server.js

app.post('/signup', () => console.log('signed up!')) // 첫번째 인자에는 endpoint url 을 기입하고,
app.post('/login', () => console.log('logged in!')) // 각각의 요청에 대해 핸들링 하는 함수를 두번째 인자로 넣습니다.
app.get('/products', sendPosts)
app.post('/products', createProduct)
app.put('/products', updatePost)
app.delete('/products', deletePost) // <<----- routing을 추가해줍니다 :)
profile
지속적으로 성장하고 발전하는 진취적인 태도를 가진 개발자의 삶을 추구합니다.

0개의 댓글