ExpressJS将variables传递给JavaScript

我完全失去了这一点; 我正在使用NodeJS来获取JSON,我需要将该variables传递给我的页面,并使JavaScript使用数据。

app.get('/test', function(req, res) { res.render('testPage', { myVar: 'My Data' }); 

这是我的Express代码(testing非常简单); 现在使用JADE我想收集这个数据,我知道在页面上呈现是简单的

 p= myVar 

但我需要能够收集这些数据在JavaScript(如果可能在.js文件中),但现在只是要显示在一个警报框中的variables我已经尝试

 alert(#{myVar}) 

还有很多其他人,如果有人可以帮助非常感激

尝试以下操作:

 alert('!{myVar}') 

如果不仅仅是一个string,JSON编码数据是个好主意。

 alert('!{JSON.stringify(myVar)}') 

正如提摩太所说:

 <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。

那么,Javascript(和V8)有一个内置的函数来呈现JSON从一个对象,JSON恰好与Javascript兼容。

所以最简单的方法来做你想做的事情是:

 <script type="text/javascript>var myVar = #{JSON.stringify(myVar)};</script> 

而且,是的,您可以在Jade模板中使用HTML。

我知道我晚了一点,但是我几个月前写了一个模块(JShare)来解决这个问题。 看看: https : //npmjs.org/package/jshare

你可以利用Now.js。 它很容易让你实时共享variables客户端/服务器端。

检查出来: http : //www.nowjs.com/