[typescript] 타입스크립트에서 MongoDB 데이터를 PDF 파일로 내보내는 방법

이번에는 타입스크립트로 MongoDB 데이터를 가져와서 PDF 파일로 내보내는 방법에 대해 알아보겠습니다. MongoDB에서 데이터를 가져와서 PDF 파일로 내보내는 것은 많은 웹 애플리케이션에서 유용하게 활용됩니다. 이를 위해 우선 MongoDB에서 데이터를 가져오고, 그 데이터를 PDF로 변환하는 과정을 타입스크립트로 구현해 보겠습니다.

필요한 패키지 설치

먼저, 프로젝트 디렉토리에서 아래 명령어를 사용하여 필요한 패키지를 설치합니다.

npm install --save mongoose pdfkit

mongoose 패키지는 MongoDB 데이터베이스에 접속하고 상호작용하는 데 사용되며, pdfkit 패키지는 PDF를 생성하는 데 사용됩니다.

MongoDB에서 데이터 가져오기

타입스크립트에서 MongoDB에서 데이터를 가져오기 위해서 mongoose 패키지를 사용해야 합니다. 아래는 간단한 스키마와 모델 예제입니다.

// book.model.ts

import mongoose, { Document } from 'mongoose';

interface IBook extends Document {
  title: string;
  author: string;
  genre: string;
  // ... other fields
}

const BookSchema = new mongoose.Schema({
  title: { type: String, required: true },
  author: { type: String, required: true },
  genre: { type: String, required: true },
  // ... other fields
});

const Book = mongoose.model<IBook>('Book', BookSchema);

export default Book;

위 코드에서 mongoose를 사용하여 Book 모델을 정의하고, 해당 모델을 통해 MongoDB에서 데이터를 가져올 수 있습니다.

PDF 파일 생성하기

이제 pdfkit 패키지를 사용하여 MongoDB에서 가져온 데이터를 바탕으로 PDF 파일을 생성해 봅시다.

// createPdf.ts

import PDFDocument from 'pdfkit';
import fs from 'fs';
import Book from './book.model';

const generatePdf = async () => {
  const books = await Book.find({}).exec();

  const doc = new PDFDocument();
  doc.pipe(fs.createWriteStream('books.pdf'));

  doc.fontSize(25).text('List of Books', {
    align: 'center',
  });

  books.forEach((book, index) => {
    doc.text(`${index + 1}. Title: ${book.title}, Author: ${book.author}, Genre: ${book.genre}`);
  });

  doc.end();
};

generatePdf();

위의 코드에서 Book 모델을 사용하여 MongoDB에서 도서 목록을 가져온 후, pdfkit을 사용하여 PDF 파일을 생성합니다.

이제 npm run start 명령어를 통해 스크립트를 실행하면, 프로젝트 디렉토리에 books.pdf 파일이 생성될 것입니다.

이렇게하면 타입스크립트로 MongoDB에서 데이터를 가져와서 PDF 파일로 내보내는 과정을 구현할 수 있습니다.

참고 자료