[typescript] 타입스크립트와 Node.js를 이용한 파일 업로드 및 다운로드 처리 사례

파일 업로드 및 다운로드는 웹 애플리케이션에서 일반적으로 사용되는 기능 중 하나입니다. 이번 블로그에서는 타입스크립트와 Node.js를 사용하여 파일 업로드 및 다운로드를 어떻게 처리할 수 있는지에 대해 알아보겠습니다.

1. 파일 업로드

먼저, 파일 업로드를 처리하는 방법에 대해 살펴보겠습니다. 우리는 express 프레임워크를 사용하여 간단한 파일 업로드 엔드포인트를 생성할 것입니다.

import express from 'express';
import multer from 'multer';
import path from 'path';

const app = express();
const upload = multer({ dest: path.join(__dirname, 'uploads') });

app.post('/upload', upload.single('file'), (req, res) => {
  res.status(200).send('File uploaded successfully');
});

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

위의 코드는 express로 간단한 서버를 설정하고, multer를 사용하여 파일을 업로드하는 엔드포인트를 생성하는 예제입니다. 파일은 uploads 폴더에 저장됩니다.

2. 파일 다운로드

이제, 파일 다운로드를 처리하는 방법에 대해 알아보겠습니다. 파일을 다운로드하기 위해 클라이언트가 요청한 파일을 읽고 응답으로 전송하는 방식을 사용할 것입니다.

app.get('/download', (req, res) => {
  const filePath = path.join(__dirname, 'uploads', 'example.txt');
  
  res.download(filePath, (err) => {
    if (err) {
      res.status(500).send('Error downloading file');
    }
  });
});

위의 코드는 클라이언트로부터의 다운로드 요청을 처리하고, 서버에 저장된 파일을 응답으로 전송하는 예제입니다.

결론

위 예제에서는 타입스크립트와 Node.js를 사용하여 파일 업로드 및 다운로드를 처리하는 간단한 방법을 살펴보았습니다. 이러한 방식은 웹 애플리케이션에서 파일 처리를 구현할 때 유용하게 활용될 수 있습니다.

파일 업로드 및 다운로드에 대한 더 자세한 내용은 multer 공식 문서를 참고하시기 바랍니다.