Formato de Errores
Traducción Beta No Oficial
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
El formato de errores en tu router se propagará hasta tu cliente.
Ejemplo de uso destacado
Agregar formato personalizado
server.tstsimport {initTRPC } from '@trpc/server';import {ZodError } from 'zod';export constt =initTRPC .create ({errorFormatter (opts ) {const {shape ,error } =opts ;return {...shape ,data : {...shape .data ,zodError :error .code === 'BAD_REQUEST' &&error .cause instanceofZodError ?error .cause .flatten (): null,},};},});
server.tstsimport {initTRPC } from '@trpc/server';import {ZodError } from 'zod';export constt =initTRPC .create ({errorFormatter (opts ) {const {shape ,error } =opts ;return {...shape ,data : {...shape .data ,zodError :error .code === 'BAD_REQUEST' &&error .cause instanceofZodError ?error .cause .flatten (): null,},};},});
Uso en React
components/MyComponent.tsxtsximport {useEffect } from 'react';import {trpc } from '../utils/trpc';export functionMyComponent () {constmutation =trpc .addPost .useMutation ();useEffect (() => {mutation .mutate ({title : 'example' });}, []);if (mutation .error ?.data ?.zodError ) {// zodError will be inferredreturn (<pre >Error: {JSON .stringify (mutation .error .data .zodError , null, 2)}</pre >);}return <>[...]</>;}
components/MyComponent.tsxtsximport {useEffect } from 'react';import {trpc } from '../utils/trpc';export functionMyComponent () {constmutation =trpc .addPost .useMutation ();useEffect (() => {mutation .mutate ({title : 'example' });}, []);if (mutation .error ?.data ?.zodError ) {// zodError will be inferredreturn (<pre >Error: {JSON .stringify (mutation .error .data .zodError , null, 2)}</pre >);}return <>[...]</>;}
Todas las propiedades enviadas a errorFormatter()
tRPC cumple con JSON-RPC 2.0
tsinterfaceErrorFormatterOpts {error :TRPCError ;type : 'query' | 'mutation' | 'subscription' | 'unknown';path : string | undefined;input : unknown;ctx : unknown;shape : {message : string;code : number;data : unknown };}
tsinterfaceErrorFormatterOpts {error :TRPCError ;type : 'query' | 'mutation' | 'subscription' | 'unknown';path : string | undefined;input : unknown;ctx : unknown;shape : {message : string;code : number;data : unknown };}
DefaultErrorShape:
tstypeDefaultErrorData = {code :TRPC_ERROR_CODE_KEY ;httpStatus : number;/*** Path to the procedure that threw the error*/path ?: string;/*** Stack trace of the error (only in development)*/stack ?: string;};interfaceDefaultErrorShape {message : string;code :TRPC_ERROR_CODE_NUMBER ;data :DefaultErrorData ;}
tstypeDefaultErrorData = {code :TRPC_ERROR_CODE_KEY ;httpStatus : number;/*** Path to the procedure that threw the error*/path ?: string;/*** Stack trace of the error (only in development)*/stack ?: string;};interfaceDefaultErrorShape {message : string;code :TRPC_ERROR_CODE_NUMBER ;data :DefaultErrorData ;}