在客户端(node.js + express)中访问服务器变量

4

我有一个简单的HTML页面,是由Node.js服务器上的Express提供服务的,在客户端JavaScript中,我想访问一些服务器端变量。我尝试在Google上搜索解决方案,但没有看到不使用某种模板引擎的直接解决方案。

因此,如果我需要从同一主机提供的客户端JS访问服务器上的变量,我需要做什么?


将JSON输出到脚本标签中,或者通过AJAX请求获取数据。 - elclanrs
就像@elclanrs所说的那样,在文档中输出script标签之间的javascript,使用AJAX或作为第三个选项使用socket.io进行实时通信。 - Sébastien Vercammen
个人认为在这里使用WebSockets是最好的选择。我讨厌设置一个Express路由只为了返回一个变量。随时能够发送数据比所有那些XHR调用要容易得多。 - Sterling Archer
使用某种访问res.locals的模板,例如EJS、Jade或自己创建的模板通常是一个好主意,这使得在页面加载时轻松地将数据传输到HTML中,而无需进行任何其他请求。 - adeneo
4个回答

2
要在客户端访问变量,您需要将其暴露在脚本标记内。有一些Node模块可以帮助您完成此操作(例如:express-state)https://www.npmjs.com/package/express-state,但您需要使用模板引擎生成所需的HTML。使用Express时,您可以使用多种模板引擎。如果您直接使用Express生成器,则应该带有jade,您可以使用生成器上的不同选项来使用其他模板引擎。请参见此处的Express生成器选项http://expressjs.com/en/starter/generator.html

1
创建一个API来公开你的变量:
app.get('/myvar', function(req, res){
  res.send(varYouWantToSend);
 });

然后在客户端使用http GET请求调用该API。在这个例子中,API的URL将为www.yoursite.com/myvar


0

0

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