質問編集履歴
5
js側のテストコードについてコード例とエラーを記載
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
### 前提
|
2
|
-
PHPもnode.jsもサーバーサイドであることは前提ですがnpmで管理されるパッケージがPHPには存在しないのでPHPのコードの中でnode.jsを実行したいと考えております。
|
2
|
+
PHPもnode.jsもサーバーサイドであることは前提ですがnpmで管理されるパッケージがPHPには存在しないのでPHPのコードの中でnode.jsを実行したいと考えております。npmは'japan-address-search'を想定しています。
|
3
3
|
|
4
4
|
### 実現したいこと
|
5
5
|
PHPのコードの中で変数を定義し、その値が設定されたときにnode.jsの処理を呼び出す。
|
6
|
-
1. 下記のコード例ではPHPファイルで生成した”Sum”ボタンを押すと$_POST["Submit1"]のパラメータが設定され、その時に、execでjsファイルが読み込まれるようになっております。ただし
|
6
|
+
1. 下記のコード例ではPHPファイルで生成した”Sum”ボタンを押すと$_POST["Submit1"]のパラメータが設定され、その時に、execでjsファイルが読み込まれるようになっております。console.logの出力は確認できました。ただし、npmで取得した'japan-address-search'パッケージは”require is not defined”と出力され呼び出すことはできませんでした。
|
7
7
|
|
8
|
-
### 想定しているコード例
|
8
|
+
### 想定しているコード例
|
9
9
|
```
|
10
10
|
//php_nodejs/php_exec_nodejs.php
|
11
11
|
<html>
|
@@ -18,19 +18,33 @@
|
|
18
18
|
<?php
|
19
19
|
if(isset($_POST["Submit1"]))
|
20
20
|
{
|
21
|
-
exec('node
|
21
|
+
exec('node nodejs_for_php.js');
|
22
|
+
// exec('write.js >/dev/null/ 2>&1 &');
|
22
23
|
}
|
23
24
|
?>
|
24
25
|
</form>
|
25
|
-
<script src="
|
26
|
+
<script type="module" src="nodejs_for_php.js" type="text/javascript" ></script>
|
26
27
|
</body>
|
27
28
|
</html>
|
28
29
|
|
30
|
+
*****************************************************************
|
29
31
|
|
30
|
-
//php_nodejs/nodejs_for_php.js
|
32
|
+
//php_nodejs/nodejs_for_php.js //1回目のテストコード
|
31
33
|
console.log(”hello");
|
34
|
+
//console.logでは出力できたことを確認した。
|
32
35
|
|
36
|
+
|
37
|
+
*****************************************************************
|
38
|
+
//php_nodejs/nodejs_for_php.js //2回目のテストコード
|
39
|
+
const convert = require('japan-address-search');
|
40
|
+
convert("霞が関2").then(json=>{
|
41
|
+
console.log(json);
|
42
|
+
});
|
43
|
+
//require is not definedとエラーメッセージが表記されて、
|
44
|
+
//nodejsのパッケージは処理されず。
|
33
45
|
```
|
46
|
+
|
47
|
+
|
34
48
|
|
35
49
|
### 補足情報(FW/ツールのバージョンなど)
|
36
50
|
apache 2.4.6 (PHP)
|
4
jsファイルの簡素化
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,9 +1,5 @@
|
|
1
1
|
### 前提
|
2
|
-
PHPもnode.jsもサーバーサイドであることは前提ですが
|
3
|
-
npmで管理される”japan-address-search”パッケージがPHPには存在しないので
|
4
|
-
PHPのコードの中でnode.jsを実行したいと考えております。
|
2
|
+
PHPもnode.jsもサーバーサイドであることは前提ですがnpmで管理されるパッケージがPHPには存在しないのでPHPのコードの中でnode.jsを実行したいと考えております。
|
5
|
-
|
6
|
-
https://www.npmjs.com/package/japan-address-search
|
7
3
|
|
8
4
|
### 実現したいこと
|
9
5
|
PHPのコードの中で変数を定義し、その値が設定されたときにnode.jsの処理を呼び出す。
|
@@ -32,16 +28,7 @@
|
|
32
28
|
|
33
29
|
|
34
30
|
//php_nodejs/nodejs_for_php.js
|
35
|
-
// create an empty modbus client
|
36
|
-
var request = require("japan-address-search")
|
37
|
-
var ModbusRTU = require("modbus-serial");
|
38
|
-
var client = new ModbusRTU();
|
39
|
-
// open connection to a serial port
|
40
|
-
client.connectRTUBuffered("COM2", { baudRate: 9600 ,parity: "even", dataBits: 8, stopBits: 1} , write );
|
41
|
-
function write() {
|
42
|
-
client.writeCoil(22, 1);
|
43
|
-
console.log("
|
31
|
+
console.log(”hello");
|
44
|
-
}
|
45
32
|
|
46
33
|
```
|
47
34
|
|
3
実現したいことの具体的な記述
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,10 +6,8 @@
|
|
6
6
|
https://www.npmjs.com/package/japan-address-search
|
7
7
|
|
8
8
|
### 実現したいこと
|
9
|
-
PHPのコードの中で変数を定義し、その値が設定されたときに
|
9
|
+
PHPのコードの中で変数を定義し、その値が設定されたときにnode.jsの処理を呼び出す。
|
10
|
-
node.jsの処理を呼び出す。
|
11
|
-
1. PHPから特定の変数が入力された場合にnode.jsを動かしたいと考えていますがどのような変数の受け渡しを想定すればいいでしょうか?
|
12
|
-
1. 下記のコード例では
|
10
|
+
1. 下記のコード例ではPHPファイルで生成した”Sum”ボタンを押すと$_POST["Submit1"]のパラメータが設定され、その時に、execでjsファイルが読み込まれるようになっております。ただしXdebug(デバッグ)でjsファイル由来のパラメータが届いていませんし処理が行われているのかも分かりません。何らかのパラメータをPHPのコードの処理で受け取りたいと考えております。
|
13
11
|
|
14
12
|
### 想定しているコード例(stack over flowから)
|
15
13
|
```
|
2
debug時にjsファイルからの処理を受け取れないことの追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -9,6 +9,7 @@
|
|
9
9
|
PHPのコードの中で変数を定義し、その値が設定されたときに
|
10
10
|
node.jsの処理を呼び出す。
|
11
11
|
1. PHPから特定の変数が入力された場合にnode.jsを動かしたいと考えていますがどのような変数の受け渡しを想定すればいいでしょうか?
|
12
|
+
1. 下記のコード例ではhtmlで生成した”Sum”ボタンを押すと$_POST["Submit1"]のパラメータが設定され、その時に、execでjsファイルが読み込まれるようになっておりますが、Xdebug(デバッグ)でjsファイル由来のパラメータが届いていません。
|
12
13
|
|
13
14
|
### 想定しているコード例(stack over flowから)
|
14
15
|
```
|
1
stack over flowのコード例を記載
test
CHANGED
File without changes
|
test
CHANGED
@@ -9,16 +9,40 @@
|
|
9
9
|
PHPのコードの中で変数を定義し、その値が設定されたときに
|
10
10
|
node.jsの処理を呼び出す。
|
11
11
|
1. PHPから特定の変数が入力された場合にnode.jsを動かしたいと考えていますがどのような変数の受け渡しを想定すればいいでしょうか?
|
12
|
-
1. listen(PORT)でnode.jsのサーバーを起動しなくてもよろしいでしょうか?
|
13
|
-
1. <script>タグでjsファイルを指定すればコードは読み込めますでしょうか?
|
14
12
|
|
15
|
-
### 想定しているコード
|
13
|
+
### 想定しているコード例(stack over flowから)
|
16
14
|
```
|
15
|
+
//php_nodejs/php_exec_nodejs.php
|
16
|
+
<html>
|
17
|
+
<head>
|
18
|
+
<title>PHP isset() example</title>
|
19
|
+
</head>
|
20
|
+
<body>
|
21
|
+
<form method="post">
|
22
|
+
<input type="submit" value="Sum" name="Submit1"><br/><br/>
|
17
23
|
<?php
|
18
|
-
....
|
19
|
-
|
24
|
+
if(isset($_POST["Submit1"]))
|
20
|
-
|
25
|
+
{
|
26
|
+
exec('node write.js');
|
27
|
+
}
|
21
28
|
?>
|
29
|
+
</form>
|
30
|
+
<script src="write.js" type="text/javascript" ></script>
|
31
|
+
</body>
|
32
|
+
</html>
|
33
|
+
|
34
|
+
|
35
|
+
//php_nodejs/nodejs_for_php.js
|
36
|
+
// create an empty modbus client
|
37
|
+
var request = require("japan-address-search")
|
38
|
+
var ModbusRTU = require("modbus-serial");
|
39
|
+
var client = new ModbusRTU();
|
40
|
+
// open connection to a serial port
|
41
|
+
client.connectRTUBuffered("COM2", { baudRate: 9600 ,parity: "even", dataBits: 8, stopBits: 1} , write );
|
42
|
+
function write() {
|
43
|
+
client.writeCoil(22, 1);
|
44
|
+
console.log("aaa");
|
45
|
+
}
|
22
46
|
|
23
47
|
```
|
24
48
|
|