所以,我的 node.js 有问题。不知何故,当我运行 server.js 时,处理器很快变热了。所以,我试着知道为什么使用“top”命令。该列表显示有命令“find”每隔几秒执行一次。而且它不仅仅是一个......超过10个并且使用CPU超过10%。
之后,当我使用命令“cat /proc/”find_pid“/cmdline”时,我得到了这个:find -L/(-ipath/.git-prune-or-ipath/node_modules-prune-or-ipath/bower_components- prune-or-ipath/.sass-cache-prune)-or(-typef-and-mmin-10.316666666666666-print)
在运行其他“查找”命令的不同 PID 时,我得到了几乎相同的东西,只是 -print 之前的数字发生了变化。
有谁知道这可能是什么原因造成的?
因为,我对这里发生的事情完全视而不见。
我正在使用 nodemon 运行 server.js。
之前谢谢...
我的代码:
//create html
function createHTML (timestamp) {
return <html_body>
}
//ENDPOINTS
app.get ('/', function (req,res) {
res.send (createHTML());
});
//execute shell script to trigger relay
function relayTrigger (num,status) {
if (num != 8 ) exec <gpio_script>
else if (num == 8 ) exec <gpio_script>
}
//for getting the status
app.get('/getRelay', function (req, res){
date = new Date();
dateString = date.toISOString();
console.log('Get server: ' +
' '
+ dateString);
res.send (<status>);
res.end();
})
//For controlling the relay
app.get ('/relayUpdate', function (req,res) {
var on_button_snip = '';
var off_button_snip = '';
console.log ("Relay "+ req.query.relayNum + " is "+req.query.status);
//determine displayed button by parsing the status parameter
if (req.query.status == "On") {
on_button_snip = '<img src="public/ON_bright.PNG" style="width:154px;height:99px">';
off_button_snip = '<img src="public/OFF_dark.PNG" style="width:154px;height:99px">';
} else {
on_button_snip = '<img src="public/ON_dark.PNG" style="width:154px;height:99px">';
off_button_snip = '<img src="public/OFF_bright.PNG" style="width:154px;height:99px">';
}
//determine which snippet needs to be updated by parsing the relayNum argument
relay_number = parseInt (req.query.relayNum);
switch (relay_number) {
case 1:
r1_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=1&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=1&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (97,"on");
relay1status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (97,"off");
relay1status = "0";
}
//console.log (r1_html_snip);
break;
case 2:
r2_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=2&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=2&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (108,"on");
relay2status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (108,"off");
relay2status = "0";
}
//console.log (r2_html_snip);
break;
case 3:
r3_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=3&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=3&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (100,"on");
relay3status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (100,"off");
relay3status = "0";
}
//console.log (r3_html_snip);
break;
case 4:
r4_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=4&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=4&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (101,"on");
relay4status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (101,"off");
relay4status = "0";
}
//console.log (r4_html_snip);
break;
case 5:
r5_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=5&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=5&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (117,"on");
relay5status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (117,"off");
relay5status = "0";
}
//console.log (r5_html_snip);
break;
case 6:
r6_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=6&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=6&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (105,"on");
relay6status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (105,"off");
relay6status = "0";
}
//console.log (r6_html_snip);
break;
case 7:
r7_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=7&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=7&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (103,"on");
relay7status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (103,"off");
relay7status = "0";
}
//console.log (r7_html_snip);
break;
case 8:
r8_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=8&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=8&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (106,"on");
relay8status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (106,"off");
relay8status = "0";
}
//console.log (r8_html_snip);
break;
case 9:
r1_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=1&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=1&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r2_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=2&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=2&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r3_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=3&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=3&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r4_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=4&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=4&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r5_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=5&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=5&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r6_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=6&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=6&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r7_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=7&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=7&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r8_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=8&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=8&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r9_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=9&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=9&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (8,"on");
relay9status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (8,"off");
relay9status = "0";
}
//console.log (r9_html_snip);
break;
}
res.redirect ("/");
res.end();
});
app.listen (port, function (err) {
console.log ('Listening on port ' + port);
});
基本上,我有 8 个继电器,我将使用 html 从浏览器进行控制。按钮只是一张图片,如果按下按钮就会改变。