1

所以,我的 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 从浏览器进行控制。按钮只是一张图片,如果按下按钮就会改变。

4

0 回答 0