質問編集履歴

5

js側のテストコードについてコード例とエラーを記載

2022/12/03 23:20

投稿

syuhei_ss
syuhei_ss

スコア1

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ファイルが読み込まれるようになっております。ただしXdebug(デバッグ)でjsファイル由来のラメタが届いていませんし処理が行わているのかも分かりません。何らかのパラメータをPHPのコードの処理受け取りいと考えております
6
+ 1. 下記のコード例ではPHPファイルで生成した”Sum”ボタンを押すと$_POST["Submit1"]のパラメータが設定され、その時に、execでjsファイルが読み込まれるようになっております。console.logの出力は確認できまし。ただし、npmで取得した'japan-address-search'ッケジは”require is not defined”と出力さ呼び出すことはできませんでた。
7
7
 
8
- ### 想定しているコード例(stack over flowから)
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 write.js');
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="write.js" type="text/javascript" ></script>
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ファイルの簡素化

2022/12/03 21:22

投稿

syuhei_ss
syuhei_ss

スコア1

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("aaa");
31
+ console.log(”hello");
44
- }
45
32
 
46
33
  ```
47
34
 

3

実現したいことの具体的な記述

2022/12/03 21:08

投稿

syuhei_ss
syuhei_ss

スコア1

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. 下記のコード例ではhtmlで生成した”Sum”ボタンを押すと$_POST["Submit1"]のパラメータが設定され、その時に、execでjsファイルが読み込まれるようになっておりますが、Xdebug(デバッグ)でjsファイル由来のパラメータが届いていません。
10
+ 1. 下記のコード例ではPHPファイルで生成した”Sum”ボタンを押すと$_POST["Submit1"]のパラメータが設定され、その時に、execでjsファイルが読み込まれるようになっております。ただしXdebug(デバッグ)でjsファイル由来のパラメータが届いていませんし処理が行われているのかも分かりません何らかのパラメータをPHPのコードの処理で受け取りたいと考えております。
13
11
 
14
12
  ### 想定しているコード例(stack over flowから)
15
13
  ```

2

debug時にjsファイルからの処理を受け取れないことの追記

2022/12/03 21:04

投稿

syuhei_ss
syuhei_ss

スコア1

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のコード例を記載

2022/12/03 20:58

投稿

syuhei_ss
syuhei_ss

スコア1

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
- <script> </script>
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