Javascript 如何使用ExpressExpose访问客户端上的变量?
当express.js返回index.html页面时,我想在index.html页面上设置一个javascript变量。我试图使用expressexpose中间件,但我不确定如何在呈现的静态html页面中获取变量集 在服务器上,我有: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
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(可能),那么只有第一个适用于你的情况。