es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuáles son las causas de UnhandledPromiseRejectionWarning en TypeGraphql?

Tengo un problema con mi código de typegraphql. No pude encontrar qué causa este mensaje de error.
El código que compartí a continuación es mi resolutor y mutación que debería devolver un ProductResponse:

@Mutation(returns => ProductResponse)
async addProduct (@Args() { model, title, description, price, images, productCode }: productData):
Promise<productresponse> {
  try {
    const productInstance = new ProductService()
    const resp = await productInstance.add(model, title, description, price, images, productCode)
    return { product: resp }
  } catch (err: any) {
    return { errorMessage: err.message }
  }
}

A continuación se muestra la clase ProductResponse para estandarizar la respuesta de todas las mutaciones y consultas:

@ObjectType()
export class ProductResponse {
  @Field(returns => String, { nullable: true })
  errorMessage?: string

  @Field(returns => Product, { nullable: true })
  product?: Product
}

Y este es mi servicio que devuelve los datos guardados en la base de datos o lanza un error:

async add (model: string, title: string, description: string, price: number, images: string, productCode: string) {
  const product = await Product.findOne({ where: { productCode } })
  if (product) {
    throw new Error("Producto duplicado")
  }

  const newProduct = await Product.create({ model, title, description, price, images, productCode }).save()

  return newProduct
}

Pero cuando ejecuto este código, me encuentro con el siguiente mensaje de error. ¿Qué estoy haciendo mal?

UnhandledPromiseRejectionWarning: Error: No se puede determinar el tipo de salida de GraphQL para 'addProduct' de la clase 'ProductResolver'. ¿El valor que se utiliza como su tipo de TS o tipo explícito está decorado con un decorador adecuado o es un valor de salida adecuado?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el mensaje de error que estás encontrando está relacionado con la función addProduct que no tiene un tipo de retorno adecuado o un valor de salida.

    Debes asegurarte de que la clase Product esté correctamente definida y decorada como un ObjectType de GraphQL. Además, verifica que la clase ProductData también esté correctamente definida y decorada con los decoradores GraphQL adecuados para sus propiedades.

    Si esas clases están correctamente definidas, entonces debes comprobar que el tipo de retorno de la función addProduct coincida con el tipo definido en el decorador de resolución Mutation, que debería ser ProductResponse.

    Además, podrías intentar especificar el valor de retorno de la función add en la clase ProductService para asegurarte de que regresa el tipo correcto.

    Una vez que hayas revisado estos elementos, el error debería resolverse.

Comments are closed.