前提
PHPもnode.jsもサーバーサイドであることは前提ですがnpmで管理されるパッケージがPHPには存在しないのでPHPのコードの中でnode.jsを実行したいと考えております。npmは'japan-address-search'を想定しています。
実現したいこと
PHPのコードの中で変数を定義し、その値が設定されたときにnode.jsの処理を呼び出す。
- 下記のコード例ではPHPファイルで生成した”Sum”ボタンを押すと$_POST["Submit1"]のパラメータが設定され、その時に、execでjsファイルが読み込まれるようになっております。console.logの出力は確認できました。ただし、npmで取得した'japan-address-search'パッケージは”require is not defined”と出力され呼び出すことはできませんでした。
想定しているコード例
//php_nodejs/php_exec_nodejs.php <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('node nodejs_for_php.js'); // exec('write.js >/dev/null/ 2>&1 &'); } ?> </form> <script type="module" src="nodejs_for_php.js" type="text/javascript" ></script> </body> </html> ***************************************************************** //php_nodejs/nodejs_for_php.js //1回目のテストコード console.log(”hello"); //console.logでは出力できたことを確認した。 ***************************************************************** //php_nodejs/nodejs_for_php.js //2回目のテストコード const convert = require('japan-address-search'); convert("霞が関2").then(json=>{ console.log(json); }); //require is not definedとエラーメッセージが表記されて、 //nodejsのパッケージは処理されず。
補足情報(FW/ツールのバージョンなど)
apache 2.4.6 (PHP)
PHP 7.2
node.js 16.0
回答1件
あなたの回答
tips
プレビュー