Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Jade:为特定路线资源提供服务_Node.js_Express_Pug - Fatal编程技术网

Node.js Jade:为特定路线资源提供服务

Node.js Jade:为特定路线资源提供服务,node.js,express,pug,Node.js,Express,Pug,在我的/inc/footer.jade中,我有一堆脚本标记。我只想在一条特定路线上提供附加脚本。如何完成 在控制器中,我可以做到: res.render('someTemplate', { extraScript: true }); 和在页脚。翡翠 - if (extraScript) <script src="/script.js"></script> -if(外部脚本) 但是我必须在每个路由中包含这个“extraScript”变量(设置为false)。您

在我的
/inc/footer.jade
中,我有一堆脚本标记。我只想在一条特定路线上提供附加脚本。如何完成

在控制器中,我可以做到:

res.render('someTemplate', {
  extraScript: true
});
和在页脚。翡翠

- if (extraScript)
  <script src="/script.js"></script>
-if(外部脚本)

但是我必须在每个路由中包含这个“extraScript”变量(设置为false)。

您可以使用
typeof
检查变量是否存在

- if (typeof extraScript !== 'undefined')
  <script src="/script.js"></script>
-if(extraScript的类型!==“未定义”)

这样,对于所有不需要额外脚本的路由,您只需传入
extraScript
,然后在模板中传入
typeof extraScript!==未定义的
将被评估为
false

extraScript解决方案有效,但我认为更好的解决方案是使用模板继承(block和extends关键字)。这样,您就不必向模板中添加逻辑和局部变量,而且您仍然可以保持jade标记中的内容干燥。

这就是我一直在寻找的解决方案。谢谢