Express.js가 무엇인가요?

13166 단어 javascriptexpressnode
Express는 http 모듈 위에 구축된 nodejs 프레임워크이며 미들웨어 기반입니다. Express는 uri 체인을 통해 들어오는 요청을 전달하고 그것으로 작업을 수행하는 기능이 있습니다.

요청이 들어오면 express는 작업을 수행하고, 데이터를 가져오고, 사용자 인증을 확인하고, 상태 코드를 보내는 등의 작업을 수행할 수 있습니다.

기본적인 get 요청은 다음과 같습니다.

const express = require('express');
const app = express();
const port = 4001;

const products = [
  { name: 'iPhone', price: 800 },
  { name: 'iPad', price: 650 },
  { name: 'iWatch', price: 750 }
]

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

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

// GET request for all products
app.get('/api/v1/products', (req, res) => {
  res.json(products);
}


이 서버를 실행하려면 node index.js를 사용하십시오.

사이트의 경로와 페이지 간에 정보를 주고받을 수 있습니다.

const findId = (id, list) => {
  return list.find((el) => {
    return el.id === Number(id)
  })
}

app.get('/api/v1/products/:id', (req, res) => {
  const product = findId(
    req.params.id,
    products
  )
  // If the product is found
  if (product) {
    res.send(foundExpression)
  } else {
    res.status(404).send()
  }
})



전체 CRUD 기능은 익스프레스 경로에서 바로 구성할 수 있으며 사이트의 더 작은 기능을 제어하여 문제의 분리를 더욱 강화하는 데 도움이 됩니다.

const getIndexById = (id, list) => {
  return list.findIndex((el) => {
    return el.id === Number(id);
  });
};

const updateElement = (id, query, list) => {
  const index = getIndexById(id, list);
  if (index === -1) {
    throw new Error ('must have a valid id');
  }
  if (query.id) {
    query.id = Number(query.id);
  } 

  Object.assign(list[index], query);
  return list[index]
}

// Update
app.put('/api/v1/products/:id', (req, res) => {
  const productIndex = getIndexById(req.params.id, products)
  if (productIndex !== -1) {
    updateElement(req.params.id, req.query, products)
    res.send(products[productIndex])
  } else {
    // respond with 404 not found code
    res.status(404).send();
  }
})


완료하려면 삭제 요청을 추가할 수 있습니다.

app.delete('/api/v1/products/:id', (req, res) => {
  const productIndex = getIndexById(req.params.id, products);

  if (productIndex !== -1) {
    products.splice(productIndex, 1);
    res.status(204).send();
  } else {
    res.status(404).send();
  }
})


이러한 모든 기능은 백엔드 소스를 차단하지 않고 API 요청을 처리하거나 프런트엔드 컨트롤에 더 많은 사용자 지정을 제공할 수 있는 동시에 프런트엔드 소스 프로젝트에 존재할 필요가 있는 임베디드 기능으로 작동할 수 있습니다.

좋은 웹페이지 즐겨찾기