我完全迷失了;我正在使用NodeJS来获取JSON,我需要将变量传递给我的页面并让JavaScript使用数据。
app.get('/test', function(req, res) {
res.render('testPage', {
myVar: 'My Data'
});
这是我的Express代码(非常简单,用于测试目的);现在使用JADE我想收集这些我知道在页面上呈现的数据只是
p= myVar
但是我需要能够在JavaScript中收集这些数据(如果可能的话,在.js文件中),但现在只是在我尝试过的Alert框中显示变量
alert(#{myVar})
许多其他人如果有人可以帮助我们非常感激
答案 0 :(得分:11)
尝试以下方法:
alert('!{myVar}')
如果不仅仅是一个字符串,那么对数据进行JSON编码是一个好主意。
alert('!{JSON.stringify(myVar)}')
答案 1 :(得分:11)
提摩太说:
<script type="text/javascript>var myVar = #{JSON.stringify(myVar)};</script>
如果您不喜欢在jade模板中编写HTML,也可以按如下方式完成:
script
var myVar = !{JSON.stringify(myVar)};
var myVar2 = !{JSON.stringify(myVar2)};
更新:对于Express 4,使用script.
代替script
,以便将其呈现为javascript而非html。
答案 2 :(得分:3)
嗯,Javascript(和V8)有一个内置函数来从一个对象渲染JSON,而JSON恰好与Javascript语法兼容。
因此,最简单的方法是做你想做的事情:
<script type="text/javascript>var myVar = #{JSON.stringify(myVar)};</script>
而且,是的,您可以在Jade模板中使用HTML。
答案 3 :(得分:0)
我知道我参加派对有点晚了,但几个月前我实际上写了一个模块(JShare)来解决这个问题。看看:https://npmjs.org/package/jshare
答案 4 :(得分:-2)
你可以利用Now.js。它可以让您轻松地实时共享变量客户端/服务器端。