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

TS环境下使用@fastify/view为何找不到res.view方法?

解决@fastify/view 报错"res.view is not a function"

报错原因很明确:你在注册@fastify/view插件时,配置了propertyName: 'render',这个参数会将Fastify响应对象(res)上的视图渲染方法从默认的view替换成render,所以调用res.view()时会提示该方法不存在。

有两种解决方式:

  • 方式一:保持插件配置不变,将路由里的调用改为res.render()

    // welcome page handler
    server.get('/', (req: Request, res: Response) => {
      res.render('welcome/index.hbs');
    });
    
  • 方式二:删除插件配置中的propertyName: 'render',保留默认的view方法调用

    server.register(fastifyView, {
      engine: {
        handlebars: require('handlebars'),
      },
      root: path.join(__dirname, '..', 'templates'),
      layout: 'layouts/main.hbs',
      viewExt: 'hbs',
      defaultContext: {
        dev: process.env.NODE_ENV === 'development',
      },
      options: {},
    });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 22:32:06