[typescript] 타입스크립트와 GraphQL을 함께 사용하는 파일 업로드 방법
이번에는 타입스크립트와 GraphQL을 함께 사용하여 파일을 업로드하는 방법에 대해 알아보겠습니다.
타입스크립트에서 파일 업로드 준비하기
먼저, 타입스크립트에서 파일을 업로드하기 위해서 express
, apollo-server-express
, graphql-upload
패키지를 설치해야 합니다. 아래는 패키지를 설치하는 명령어입니다.
npm install express apollo-server-express graphql-upload
파일 업로드를 위한 GraphQL 스키마 정의
GraphQL 스키마에서 파일 업로드를 위한 타입을 정의해야 합니다. 아래는 간단한 예시입니다.
type File {
filename: String!
mimetype: String!
encoding: String!
}
Apollo Server 설정
Apollo Server를 설정하여 파일을 업로드할 수 있도록 해야 합니다. 아래는 설정하는 방법의 예시입니다.
import { ApolloServer } from 'apollo-server-express';
import { typeDefs, resolvers } from './schema';
const server = new ApolloServer({
typeDefs,
resolvers,
uploads: {
maxFileSize: 10000000, // 10 MB
maxFiles: 5
}
});
Resolver에서 파일 처리하기
마지막으로, GraphQL Resolver에서 파일을 처리하는 방법에 대해 알아봅니다. 아래는 간단한 예시입니다.
async uploadFile(parent, { file }): Promise<File> {
const { createReadStream, filename, mimetype, encoding } = await file;
// 파일 처리 로직
return { filename, mimetype, encoding };
}
이제 타입스크립트와 GraphQL을 함께 사용하여 파일을 업로드하는 방법을 준비했습니다. 이제 실제 프로젝트에서 활용하여 파일 업로드 기능을 구현해보세요!
더 많은 정보를 얻고 싶으시다면 graphql-upload 패키지의 문서를 참고해보시기 바랍니다.
그럼 즐거운 코딩 되세요!