[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 파일로 내보내는 과정을 구현할 수 있습니다.