ExpressJS将变量传递给JavaScript

Nic*_*ite 14 javascript node.js express

我完全迷失了; 我正在使用NodeJS来获取JSON,我需要将变量传递给我的页面并让JavaScript使用数据.

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

这是我的Express代码(非常简单,用于测试目的); 现在使用JADE我想收集这些我知道要在页面上呈现的数据

p= myVar
Run Code Online (Sandbox Code Playgroud)

但是我需要能够在JavaScript中收集这些数据(如果可能的话,在.js文件中),但现在只是在Alert框中显示变量我试过了

alert(#{myVar})
Run Code Online (Sandbox Code Playgroud)

还有许多其他人如果有人可以帮助我们非常感激

小智 11

请尝试以下方法:

alert('!{myVar}')
Run Code Online (Sandbox Code Playgroud)

如果不仅仅是一个字符串,JSON编码数据是个好主意.

alert('!{JSON.stringify(myVar)}')
Run Code Online (Sandbox Code Playgroud)


Ben*_*nit 11

提摩太说:

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

如果您不喜欢在jade模板中编写HTML,也可以按如下方式完成此操作:

script
  var myVar = !{JSON.stringify(myVar)};
  var myVar2 = !{JSON.stringify(myVar2)};
Run Code Online (Sandbox Code Playgroud)

更新:对于Express 4使用script.而不是script使它将呈现为javascript而不是html.