问题描述
我正在尝试使用 nodejs 、 PHP 、 html 和 css 构建一个 html scada 系统。
我的程序:我在 nodejs 中有 9 行代码;我使用此代码以 modbus rtu 协议与 PLC 通信。如果我从终端运行它,代码运行良好;
我的问题:我试图在 html 页面中使用 PHP 提交按钮 运行此代码,但我认为我错过了一些东西,因为它不起作用。
谢谢。 nodejs 代码:
// create an empty modbus client
var ModbusRTU = require("modbus-serial");
var client = new ModbusRTU();
// open connection to a serial port
client.connectRTUBuffered("COM2",{ baudrate: 9600,parity: "even",dataBits: 8,stopBits: 1},write );
function write() {
client.writeCoil(22,1);
}
html 代码::
<html>
<head>
<title>PHP isset() example</title>
</head>
<body>
<form method="post">
<input type="submit" value="Sum" name="Submit1"><br/><br/>
<?PHP
if(isset($_POST["Submit1"]))
{
exec('write.js >/dev/null/ 2>&1 &');
}
?>
</form>
<script src="write.js" type="text/javascript" ></script>
</body>
</html>
解决方法
您想执行一个没有解释器就无法执行的 js 文件。您的 exec
代码应如下所示:
exec('node write.js')
这里的 node
是你节点实例的可执行文件。