res.render()当地人在前端的位置

时间:2014-10-01 04:02:24

标签: javascript node.js dom express

这可能是一个愚蠢的问题,但在Express中,当您在res.render(view, {variable: variable})中定义局部变量时,它们如何在前端访问?他们在哪里?当我尝试访问通过此方法使用console.log(variable)定义的变量时,Firebug会抛出错误,指出variable未定义。我也试过console.log(window.variable),结果相似。那么这些变量在哪里保存?

此外,res.locals个变量是保存在同一个地方,还是只是被抛出?这些变量可供swigjade等模板引擎访问,但我也无法使用console.log()找到它们。

2 个答案:

答案 0 :(得分:4)

这些变量不会自动传递给客户端代码;正如您所说,它们可用于视图模板中的代码。同样,在res.locals(或app.locals中定义的具有相同API的变量)将在任何视图中作为局部变量提供。

如果您希望将它们提供给客户端代码,则必须以客户端JavaScript可访问的形式手动将它们作为响应的一部分发送。例如,您可以将其写入<script>标记,如下所示:Accessing Express.js local variables in client side JavaScript

答案 1 :(得分:2)

这些变量仅用于在服务器端呈现视图。显然,其中一些值会进入服务器端响应的HTML,但如果要将这些值序列化为JSON,则可能需要查看sharify等模块,嵌入<script>在HTML中标记,并在浏览器的javascript代码中访问它们。