По некоторым причинам мне нужно запустить небольшую часть моего проекта NodeJS в PHP7. Я знаю, что могу создать внутренний API, но это увеличит зависимость от сети.
Чтобы решить эту проблему, я обнаружил, что это можно сделать как
php test.php
Как мне предоставить Ввод JSON для этого Файл PHP, где данные хранятся в переменной JS, а не в файле, и получают вывод в другой переменной JS.
function runPHP(jsonString){
....what to write here
...
return output_string;
}
Note: Please, do not suggest Query parameters as the data is too large.





Я предполагаю, что вы хотите вызвать php scipt из процесса nodejs, отправить некоторые аргументы в JSON и получить обратно JSON и обработать его дальше.
Скрипт php:
<?php
// test.php
$stdin = fopen('php://stdin', 'r');
$json = '';
while ($line = fgets($stdin)) {
$json .= $line;
}
$decoded = \json_decode($json);
$decoded->return_message = 'Hello from PHP';
print \json_encode($decoded);
exit(0);
Скрипт nodejs:
// test.js
function runPHP(jsonString) {
const spawn = require('child_process').spawn;
const child = spawn('php', ['test.php']);
child.stdin.setEncoding('utf-8');
child.stdout.pipe(process.stdout);
child.stdin.write(jsonString + '\n');
child.stdin.end();
}
runPHP('{"message": "hello from js"}');
Это потребует некоторой доработки и обработки ошибок ...
Это больше, чем нужно для начала. :) Спасибо