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

使用Express Router时,Nunjucks模板变量无法在HTML渲染中显示

解决Express Router模块中res.render传对象到Nunjucks模板不显示的问题

最近踩了个Express+Nunjucks的小坑,跟大家分享下:我在导出给Express Router的模块里用res.render传递对象到index.njk模板,页面能正常渲染出来,但对象里的属性就是显示不出来。

一开始我是这么操作的:

  • 路由模块里的res.render传参:res.render('index', { data: { title: '我的标题', sub: '我的副标题' } })
  • 然后在index.njk里用{{data.title}}和{{data.sub}}去取值,结果页面上这俩位置全是空的。

折腾了好一会儿才发现核心问题:res.render传递的对象,其顶层属性会直接成为模板的全局变量,不需要额外嵌套一层data来访问。

我最终用的解决方法是修改模板写法:把{{data.title}}换成{{title}},{{data.sub}}换成{{sub}},刷新页面后,对象变量就正常显示出来了!当然你也可以调整res.render的传参,直接传{ title: '我的标题', sub: '我的副标题' },效果是一样的。

特别感谢antonmyrberg和petarr的帮忙,才快速定位到问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:36:36