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
相关产品推荐
相关产品推荐

