如何将Jade模板文件中的variables传递给Javascript文件?

我很新的Node.js,并试图让我的头几个东西。如何将variables从Jade模板文件传递给JS文件?

我有我的server.js文件中的这一行代码

res.render("aws.jade", {data : JSON.stringify({'val' : 'This is a Test'})}); 

基本上我只是试图获得数据的价值aws.jade模板文件

这是aws.jade

 html head script(type='text/javascript') var data = !{data} link(rel='stylesheet', href='/stylesheets/style.css') body title Title h1 Heading #div.test 

我不断收到这个错误在萤火虫控制台:

 <var>data = {"val":"This is a Test"}</var> 

有人可以请解释为什么发生这种情况,并为我从Jade模板文件传递给JS文件的方式?

谢谢

尝试添加一个. 脚本之后的字符,这告诉Jade你想要一个标签内的文本块。

这是你的更新代码。

 html head script(type='text/javascript'). var data = !{data} link(rel='stylesheet', href='/stylesheets/style.css') body title Title h1 Heading #div.test 

编辑 – 将标题设置为data.val

首先你应该改变你的回应,删除JSON.stringify,以便返回一个不是string值的对象。

 res.render("aws.jade", {data : {'val' : 'This is a Test'}}); 

那么你应该能够直接使用点符号访问数据对象的属性和结构,并将其直接赋值给标题元素,像这样…

 title= data.val