获取NodeJS路由发送的JS的价值

时间:2014-10-04 11:40:06

标签: node.js pug

我想从NodeJS路由发送到视图的变量中捕获值。 我知道在HTML(Jade)上获取此值的方法是:

#{name_var}

但是我希望在JS(JQuery)中获得这个值,并且我能想到的唯一方法是DOM(例如:创建一个具有此值的div,它被隐藏,之后,通过getElementById获取值)。

但我认为我发送给视图的这些数据很精细,可能会有很大的安全问题......

你怎么看?还有其他'替代'吗?谢谢。

1 个答案:

答案 0 :(得分:2)

我认为你不想通过艰难的方式将值首先放到dom元素中,然后再获取它来处理。

您可以直接将值分配给js变量,就像在html标记中一样。

script(type='text/javascript').
    var somevar = "#{serversideValue}";

因此,当html从jade模板渲染出来时,它将呈现为

script(type='text/javascript').
    var somevar = "passedValue";

同样根据路由器传递的值,您可以选择是否使用html编码,同时将值分配给js变量,如#{serversideValue}!{serversideValue}

此外,如果您通过路由器变量传递完整的json对象,那么您不能像我们上面看到的那样直接分配它。一种方法是从路由器发送它时JSON.stringify()值,并在客户端JS中使用JSON.parse()来获取原始对象。

此外,您可能需要查看this stackoverflow question以了解我们现在讨论的方案。