Node.js使用Nunjucks渲染模板报错:未知路径与未知块标签
解决Nunjucks模板渲染报错:unknown block tag: data
我来帮你快速定位问题并解决,你这是踩了两个Nunjucks的基础语法坑:
错误原因拆解
- 模板语法用错了:你用
{% data.name %}来输出变量,但Nunjucks里,{% %}是用来写控制流逻辑(比如循环、条件判断)的,输出变量必须用双大括号{{ }}——这就是你收到"unknown block tag: data"报错的直接原因。 - 数据结构不匹配:你在
app.js里传给模板的data是数组["name", "ABC"],但你试图用对象属性data.name的方式访问,数组根本没有name这个属性,就算语法对了也取不到值。
修复步骤
第一步:修正后端数据结构
把app.js里的data改成键值对对象,这样才能通过data.name访问到对应的值:
app.get('/', function(req, res){ res.render('index', {"data": {"name": "ABC"} }); });
第二步:修正模板输出语法
把HTML里的代码改成Nunjucks正确的变量输出格式:
{{ data.name }}
额外小提示
如果以后确实需要传数组(比如["name", "ABC"]),访问值要通过索引:
{{ data[1] }} <!-- 输出结果为ABC -->
记住Nunjucks的核心语法区分:
{{ 变量名 }}:专门用来输出变量内容{% 逻辑语句 %}:用来处理循环、条件判断这类逻辑
内容的提问来源于stack exchange,提问作者Bushra Shahid
相关产品推荐
相关产品推荐

