我正在使用ExpressJS和NEXTJS作为前端,Apollo server v4作为后端。我想创建一个Mutation,使用upload-graphql将文件上传到我的后端服务器。
上传类型
我的变异:
但问题是,每当我上传像照片这样的东西时,我会收到“ApolloError:Argument Validation Error”的错误提示。
我认为,目前还没有通过新版本的Apollo服务器(v4)上传的方法,但如果有人知道,请帮助我!
我的依赖项:
我尝试在我的前端 Next.js 应用中使用 apollo-upload-client 上传文件,并且进行了前端上传的场景。 这只是一个“爱好项目”,我知道有其他选择来上传文件,比如使用额外的端点API或像S3那样使用其他方法,但我想通过GraphQL上传我的文件。
export interface Upload {
filename: string;
mimetype: string;
encoding: string;
createReadStream: () => Stream;
}
我的变异:
@Mutation(() => Boolean)
async uploadFile(
@Arg("picture", () => GraphQLUpload)
{ createReadStream, filename }: Upload
): Promise<boolean> {
return new Promise(async (resolve, reject) =>
createReadStream()
.pipe(createWriteStream(__dirname + `/../../../images/${filename}`))
.on("finish", () => resolve(true))
.on("error", () => reject(false))
);
}
}
但问题是,每当我上传像照片这样的东西时,我会收到“ApolloError:Argument Validation Error”的错误提示。
我认为,目前还没有通过新版本的Apollo服务器(v4)上传的方法,但如果有人知道,请帮助我!
我的依赖项:
"dependencies":{
"@apollo/server": "^4.3.1",
"express": "^4.18.2",
"graphql": "^16.6.0",
"graphql-fields": "^2.0.3",
"graphql-middleware": "^6.1.33",
"graphql-scalars": "^1.20.1",
"graphql-shield": "^7.6.5",
"graphql-upload": "14",
"type-graphql": "2.0.0-beta.1", },
我尝试在我的前端 Next.js 应用中使用 apollo-upload-client 上传文件,并且进行了前端上传的场景。 这只是一个“爱好项目”,我知道有其他选择来上传文件,比如使用额外的端点API或像S3那样使用其他方法,但我想通过GraphQL上传我的文件。