In my Application, I want to execute a Node.JS
file from PHP
which in turn makes a http request
to another PHP
file.
In short this is the Process that I am doing.
PHP file--->calls--> Nodejs file--->processes data -->and makes http request to-->PHP File
When I run the nodejs
file via terminal, it successfully makes the http request to another PHP
file and I get what I want.
But, when I try to run the nodejs
file through PHP
, the nodejs files is not able to find some modules.
My code in PHP
:
$nodeJsPath = '/var/www/html/projectfolder/js/nodefunc.js';
$ret = exec("node ".$nodeJsPath.' 2>&1', $out, $err);
This is the error that I am getting:
Array
(
[0] => module.js:457
[1] => throw err;
[2] => ^
[3] =>
[4] => Error: Cannot find module 'some_module'
[5] => at Function.Module._resolveFilename (module.js:455:15)
[6] => at Function.Module._load (module.js:403:25)
[7] => at Module.require (module.js:483:17)
[8] => at require (internal/module.js:20:19)
[9] => at Object.<anonymous> (/var/www/html/projectfolder/js/nodefunc.js:5:9)
[10] => at Module._compile (module.js:556:32)
[11] => at Object.Module._extensions..js (module.js:565:10)
[12] => at Module.load (module.js:473:32)
[13] => at tryModuleLoad (module.js:432:12)
[14] => at Function.Module._load (module.js:424:3)
)
I got it finally. Its just ignorng the NODE_PATH
variable for reasons unkown :(
In the Nodejs
File I hade to give the absolute path of the module like this:
var request = require("/usr/lib/node_modules/request");