我有一个index.html文件,其中包含一些默认为绿色的框。我想使用node.js来改变那些盒子的颜色(通过将&#34更改div类;红色"到"绿色")根据我计划从休息中得到的值API(基本上是0或1)。
<div id="JIRA" class="small-box bg-green">
我希望能够阅读index.html,然后更改:
class="small-box bg-green">
到
class="small-box bg-red">
然后在将更改发送给用户之前将更改写回index.html。我会使用客户端js,但出于安全原因,我无法公开API令牌。
我已经看过cheerio和jsdom解析和操作HTML但是我一直无法找到如何更改实际类的示例。这是可以用node.js吗?
答案 0 :(得分:1)
我在最初的问题中并没有提供足够的信息,但我能够弄清楚如何做我想要的事情,所以我想我会发布我遇到的信息。
请注意,这个需要在服务器端完成的唯一原因 - 而不是在客户端JS中 - 是因为我需要将API请求发送到需要API令牌的服务。此服务不提供提供只读API令牌的功能,因此在客户端Javascript中公开主API令牌是一个很大的安全问题(使用开发人员工具的任何人都可以完全控制该服务)。 p>
使用express作为我们的节点服务器来提供静态服务,我为/ getStatus添加了一个app.get
行:
app.get('/getStatus', function (req, res){
....
});
该函数将向有问题的API发出请求,并返回json响应。
其余的是使用客户端Javascript完成的。
$(document).ready(function(){
$.get('http://' + window.location.hostname + ':8080/getStatus', function(status){
$('response').html(status);
从最后一行开始,status
将包含JSON对象以及我需要的相关详细信息。那么这只是使用document.getElementById(id).className = "the class name";
感谢那些发表评论和答案的人。
答案 1 :(得分:0)
相反,只需使用模板引擎Lookup Pug Templating Engine