[javascript] Express.js에서의 라우팅 처리 방법

Express.js는 Node.js에서 가장 널리 사용되는 웹 프레임워크 중 하나입니다. 이 프레임워크를 사용하여 웹 애플리케이션을 개발할 때, 라우팅 처리는 매우 중요한 부분입니다. 이번 포스트에서는 Express.js에서의 라우팅 처리 방법에 대해 알아보겠습니다.

1. 기본적인 라우팅 설정

Express.js에서 기본적인 라우팅 설정은 매우 간단합니다. 다음은 GET 요청에 대한 라우팅을 설정하는 예제입니다.

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

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

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

이 예제에서는 / 경로로 들어오는 GET 요청에 대해 'Hello, Express!'라는 응답을 보내는 간단한 라우팅을 설정하고 있습니다. app.get() 메소드를 사용하여 라우팅을 설정하며, 첫 번째 인자로 경로를, 두 번째 인자로 콜백 함수를 받습니다.

2. 동적 라우팅 설정

Express.js에서는 동적인 라우팅을 설정하는 것도 가능합니다. 동적인 라우팅은 경로에 파라미터를 넣어서 라우팅을 처리하는 방식입니다. 다음은 동적인 라우팅을 설정하는 예제입니다.

app.get('/user/:id', (req, res) => {
  const userId = req.params.id;
  res.send(`User ID: ${userId}`);
});

위의 예제에서는 /user/:id라는 경로로 들어오는 GET 요청에 대해 사용자의 ID 값을 받아와 응답으로 보내고 있습니다. :id는 파라미터를 나타내며, req.params.id를 통해 파라미터 값을 받아올 수 있습니다.

3. 여러 라우팅 처리하기

Express.js에서는 여러 개의 라우팅을 한 번에 처리하는 것도 가능합니다. 이 경우 app.route() 메소드를 사용하여 동일한 경로에 대한 다양한 요청 메소드를 한번에 설정할 수 있습니다. 다음은 여러 라우팅을 한 번에 처리하는 예제입니다.

app.route('/book')
  .get((req, res) => {
    res.send('Get a book');
  })
  .post((req, res) => {
    res.send('Create a book');
  })
  .put((req, res) => {
    res.send('Update a book');
  })
  .delete((req, res) => {
    res.send('Delete a book');
  });

위의 예제에서는 /book 경로로 들어오는 GET, POST, PUT, DELETE 요청에 대해 각각 다른 응답을 보내고 있습니다. app.route() 메소드를 사용하여 경로를 설정하고, 이후에 chaining을 통해 각 요청 메소드에 대한 콜백 함수를 설정하면 됩니다.

4. 정적 파일 라우팅

Express.js에서는 정적 파일을 서비스하기 위해 express.static() 미들웨어를 사용할 수 있습니다. 다음은 정적 파일 라우팅을 설정하는 예제입니다.

app.use(express.static('public'));

위의 예제에서는 public 디렉토리에 있는 정적 파일들을 서비스할 수 있도록 설정하고 있습니다. 따라서 public 디렉토리 안의 파일들은 그냥 파일 경로를 이용하여 접근할 수 있습니다.

마무리

이번 포스트에서는 Express.js에서의 라우팅 처리 방법에 대해 알아보았습니다. Express.js를 사용하여 웹 애플리케이션을 개발할 때, 라우팅 처리는 핵심적인 부분이므로 꼭 숙지하고 사용하시기 바랍니다. 더 자세한 내용은 Express.js 공식 문서를 참고하시기 바랍니다.