You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让tRPC服务器返回纯文本响应?

如何让tRPC服务器直接返回原始数据而非嵌套格式
  • 自定义响应转换器
    在tRPC服务器的适配器配置里,通过responseTransformer修改输出结构。以Express适配器为例:

    import { expressMiddleware } from '@trpc/server/adapters/express';
    import { appRouter } from './router';
    
    app.use('/trpc', expressMiddleware({
      router: appRouter,
      responseTransformer: (res) => {
        // 直接返回result中的data字段,无嵌套
        return res.result?.data ?? res;
      },
    }));
    

    这个方法会全局修改所有路由的响应格式,把默认的嵌套结构拆解成原始数据。

  • 单路由单独处理
    要是只需要特定路由返回原始数据,可在路由定义里直接返回最终值,再配合上面的转换器:

    import { initTRPC } from '@trpc/server';
    
    const t = initTRPC.create();
    const publicProcedure = t.procedure;
    
    export const appRouter = t.router({
      hello: publicProcedure.query(() => {
        return "OK!";
      }),
    });
    
  • 注意点

    • 改完后tRPC官方客户端可能无法正常解析响应,如果你用了官方客户端,得同步调整客户端的解析逻辑。
    • 对外提供API时,要确认调用方适配这种非标准格式,避免兼容性问题。

内容的提问来源于stack exchange,提问作者stack5

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 05:34:58