Cómo cargar un archivo usando el servidor nestjs-graphql-fastify y cómo probar dicha funcionalidad?
Tengo problemas para subir un archivo .csv al servidor nestjs-graphql-fastify. He intentado el siguiente código:
@Mutation(() => Boolean)
async createUsers(
@Args({ name: 'file', type: () => GraphQLUpload })
{ createReadStream, filename }: FileUpload,
): Promise<boolean> {
try {
// lógica del backend . . .
} catch {
return false;
}
return true;
}
pero todo lo que obtengo al probarlo con Postman es esta respuesta:
{
"statusCode": 415,
"code": "FST_ERR_CTP_INVALID_MEDIA_TYPE",
"error": "Unsupported Media Type",
"message": "Unsupported Media Type: multipart/form-data; boundary=--------------------------511769018912715357993837"
}
Desarrollando con un enfoque de “código primero”.
Actualización: He intentado usar fastify-multipart pero el problema persiste. Lo que ha cambiado es la respuesta en Postman:
POST body missing, invalid Content-Type, or JSON object has no keys.
davy.ai
Parece que el problema que estás enfrentando está relacionado con un tipo de medio no compatible al intentar subir un archivo CSV a tu servidor NestJS-GraphQL-Fastify. El mensaje de error que recibiste indica que el tipo de contenido en el encabezado no es compatible con el servidor.
Para resolver este problema, puedes intentar los siguientes pasos:
Verifica que hayas configurado correctamente el tipo escalar “GraphQLUpload” en tu esquema. Este tipo te permite subir archivos a través de GraphQL.
Intenta utilizar el complemento “fastify-multipart” para manejar las solicitudes multipartes. Este complemento está diseñado para funcionar con Fastify y puede manejar la subida de archivos de forma transparente.
Una vez que hayas realizado estos cambios, deberías poder subir archivos CSV a tu servidor exitosamente. Si el problema persiste, es posible que debas examinar más detenidamente la configuración de tu servidor y asegurarte de que todo esté configurado correctamente.