Node.js jade中的变量、全局对象和console.log
我用express框架创建了一个应用程序,它以jade作为模板引擎。在玩jade时,我设置了一个简单的测试: 在节点中,我在renderNode.js jade中的变量、全局对象和console.log,node.js,express,pug,Node.js,Express,Pug,我用express框架创建了一个应用程序,它以jade作为模板引擎。在玩jade时,我设置了一个简单的测试: 在节点中,我在renderres.render('index',{title:'Express',docs:'isjade cool?})上将一个对象传递给jade模板,在模板中,我尝试调用如下值: h1= title p Hi! p Welcome to #{title} p #{docs} - console.log(docs) script(type='
res.render('index',{title:'Express',docs:'isjade cool?})上将一个对象传递给jade模板代码>,在模板中,我尝试调用如下值:
h1= title
p Hi!
p Welcome to #{title}
p #{docs}
- console.log(docs)
script(type='text/javascript').
console.log(docs);
我发现我无法控制台记录全局对象值,如果我尝试{docs}
,它会尝试将其作为文本命令而不是它开始时的字符串进行解析。我还发现我无法将其分配给JS变量,如下所示:var test=#{docs}代码>
谁能解释一下:
{docs}
,之间有什么区别!{docs}
和docs
?(奇怪的是,文档中使用了所有三个示例,但没有一个真正解释。)
- 控制台记录从节点传递到jade的全局对象属性的正确方法是什么,以及将这些属性分配给本地JS变量的正确方法是什么
#{docs}之间有什么区别!{docs}和docs(奇怪的是,文档中使用了这三个示例,但没有一个真正解释)
命令行示例:
echo "p docs" | jade
<p>docs</p>
echo 'p #{docs}' | jade --obj '{docs: "jade is <b>cool</b>"}'
<p>jade is <b>cool</b></p>
echo 'p= docs' | jade --obj '{docs: "jade is <b>cool</b>"}'
<p>jade is <b>cool</b></p>
echo 'p !{docs}' | jade --obj '{docs: "jade is <b>cool</b>"}'
<p>jade is <b>cool</b></p>
echo 'p!= docs' | jade --obj '{docs: "jade is <b>cool</b>"}'
<p>jade is <b>cool</b></p>
我可以通过它来测试
jade --obj '{myData: {foo: "FOO"}}' < t1.jade
jade--obj'{myData:{foo:foo}}'
得到
<script type="text/javascript">var myData = {"foo":"FOO"}</script>
var myData={“foo”:“foo”}
但是,在HTML文档中安全地嵌入JSON数据的规则是很棘手的(),因此我强烈建议使用帮助器模块,这样可以确保在HTML中安全地传递数据
#{docs}之间有什么区别!{docs}和docs(奇怪的是,文档中使用了这三个示例,但没有一个真正解释)
命令行示例:
echo "p docs" | jade
<p>docs</p>
echo 'p #{docs}' | jade --obj '{docs: "jade is <b>cool</b>"}'
<p>jade is <b>cool</b></p>
echo 'p= docs' | jade --obj '{docs: "jade is <b>cool</b>"}'
<p>jade is <b>cool</b></p>
echo 'p !{docs}' | jade --obj '{docs: "jade is <b>cool</b>"}'
<p>jade is <b>cool</b></p>
echo 'p!= docs' | jade --obj '{docs: "jade is <b>cool</b>"}'
<p>jade is <b>cool</b></p>
我可以通过它来测试
jade --obj '{myData: {foo: "FOO"}}' < t1.jade
jade--obj'{myData:{foo:foo}}'
得到
<script type="text/javascript">var myData = {"foo":"FOO"}</script>
var myData={“foo”:“foo”}
但是,在HTML文档中安全地嵌入JSON数据的规则是很棘手的(),因此我强烈建议使用帮助器模块,这样可以确保在HTML中安全地传递数据