【问题标题】:How to execute a node.js command from a button click on a website?如何通过单击网站的按钮执行 node.js 命令?
【发布时间】:2015-02-12 22:05:50
【问题描述】:

我正在尝试通过单击按钮在 php 网页上执行终端命令。它用于飞行 ArDrone,是一个 nodejs 文件,我可以通过打开终端来执行命令,cd 到目录,然后通过输入“nodedrone.js”执行它,它执行得很好。我现在创建了一个网页,我想要一个按钮,我可以单击该按钮来执行文件,而不必通过终端。我不确定这在 PHP 中是否可行?我已经尝试了以下

<?php
if (isset($_POST['button']))
{
     exec('desktop/dronenotes/drone.js');
}
?>
<html>
<body>
<form method="post">
<p>
    <button name="button">Start Drone</button>
</p>
</form>
</body>

这对我不起作用,我也尝试只执行 exec('nodedrone,js');

我不确定接下来要尝试什么,因此我们将不胜感激。

【问题讨论】:

  • 我猜你没有理解基本原理。 exec 在服务器上运行。在 HTLM 中连接和 JS,以便在单击按钮时执行(我不是真正的网络程序员)。
  • 嗨,你是说这对我不起作用,或者我如何让 exec 运行?

标签: javascript php node.js


【解决方案1】:

您可能必须执行以下操作:

exec('/path/to/node /path/to/drone.js');

【讨论】:

  • 嗨,我不确定我应该为节点路径做什么。我如何获得它的路径?
  • 您可以将node.js添加到您的操作系统环境变量中(根据操作系统会有所不同),然后您无需担心路径,只需运行 exec('node /path/ to/drone.js');
  • 您好,我尝试用谷歌搜索如何将 node.js 添加到操作系统变量中,但我不知道该怎么做。我用的是mac 操作系统,你知道怎么在mac上添加吗?
  • 转到this link的“告诉你的系统在哪里可以找到节点”部分
  • 谢谢你,我已经完成了一切,我现在可以通过输入 node desktop/DroneNotes/drone.js 让它在终端中运行良好,但它仍然无法通过按钮工作在网页上。我在网页上有以下内容,你能看出这有什么问题吗?

【解决方案2】:

按钮不会自己生成 POST 值。使用隐藏输入:

<form method="post">
<p>
    <input type="hidden" name="button" value="1">
    <input type="submit" value="Start Drone">
</p>
</form>

【讨论】:

  • 我认为带有name="..." 属性的按钮也应该生成一个请求。您不需要任何其他输入字段。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-12
  • 2013-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多