Node.js jade中的变量、全局对象和console.log

Node.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='

我用express框架创建了一个应用程序,它以jade作为模板引擎。在玩jade时,我设置了一个简单的测试:

在节点中,我在render
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 &lt;b&gt;cool&lt;/b&gt;</p>

echo 'p= docs'  | jade --obj '{docs: "jade is <b>cool</b>"}'
<p>jade is &lt;b&gt;cool&lt;/b&gt;</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 &lt;b&gt;cool&lt;/b&gt;</p>

echo 'p= docs'  | jade --obj '{docs: "jade is <b>cool</b>"}'
<p>jade is &lt;b&gt;cool&lt;/b&gt;</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中安全地传递数据