NodeJS + Swig模板如何将变量传递给JavaScript

6
有没有办法在nodeJS中使用express+swig模板将服务器端的变量传递到客户端javascript?我知道在Jade中可以做到,但我更愿意使用更接近HTML的模板引擎。感谢大家的帮助!
2个回答

11

好的,我会假设你已经使用consolidate.swig配置好了你的express,如果没有,请阅读此链接(http://tinyurl.com/kcs8kvy)。 虽然我没有找到直接将变量值传递给客户端JavaScript的方法,但我找到了一个解决方法。

例如,在你的express路由中发送一个对象:

app.get("/", function(req, res){
  var myUser = { name: "Obama" };
  res.render("index", {user: myUser});
});

然后在你的index.html文件中,你可以创建一个脚本标签:

<html>

<body>
<script>
  var username = "{{user.name}}";
</script>

<script src="whatever.js"></script>
</body>

</html>

然后在您的whatever.js文件中,用户名变量将可用并具有其正确的值。希望这能帮助您。


如何处理复杂的JSON数组迭代! - Rizwan Patel
当我只使用{{user}}时,我得到了[object object],但是当我在服务器上使用json.stringify时,它给了我“Uncaught SyntaxError: Unexpected token &”,即使使用{{user|json_encode }}。 - Rizwan Patel

2
为了将后端服务器传递的json对象传递到模板中,您可以这样做: var data = {{jsonData|raw|json}} 其中,"jsonData"是您从服务器获取的json数据。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接