Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用ExpressExpose访问客户端上的变量?_Javascript_Node.js_Express - Fatal编程技术网

Javascript 如何使用ExpressExpose访问客户端上的变量?

Javascript 如何使用ExpressExpose访问客户端上的变量?,javascript,node.js,express,Javascript,Node.js,Express,当express.js返回index.html页面时,我想在index.html页面上设置一个javascript变量。我试图使用expressexpose中间件,但我不确定如何在呈现的静态html页面中获取变量集 在服务器上,我有: app.get('/', function(req, res) { var user = { name: 'tj' }; res.expose(user, 'user'); res.render(config.rootPath + '/pu

当express.js返回index.html页面时,我想在index.html页面上设置一个javascript变量。我试图使用expressexpose中间件,但我不确定如何在呈现的静态html页面中获取变量集

在服务器上,我有:

app.get('/', function(req, res) {
    var user = { name: 'tj' };
    res.expose(user, 'user');
    res.render(config.rootPath + '/public/index.html');
});
索引我的html

<script>
  var myUser = user;
</script>

var myUser=user;
我需要的是myUser来包含json对象用户


我看到的示例使用的是我没有使用的jade。

您需要像这样暴露它们

app.expose('var some = "variable";');
script var some = #{variable}

按照您的方式,它们只对模板引擎(jade)可用。在这种情况下,你必须这样做

app.expose('var some = "variable";');
script var some = #{variable}

因此,如果我的脚本中有一个用户对象(json),我将如何在“静态”html文件中实现这一点?脚本var some=#{variable}是什么意思?我在客户端获得非法字符。@JD。你不能。在将变量重新定义为“静态”HTML之前,您只能使用/处理变量
#{variable}
是Jade中的字符串插值,它在呈现HTML之前输出
变量的内容。在“静态”HTML中不能有“变量”。您只能通过我在答案中显示的两种方式之一在javascript中使用它。如果你没有使用Jade(可能),那么只有第一个适用于你的情况。