javascript — JSON.stringify, а затем отправить в качестве параметра командной строки

Я пытаюсь создать сервер NodeJS, который, используя child_process, упорядочивает объект и отправляет его в файл php для обработки, а затем ожидает результата. Моя проблема в том, что я не могу понять, как отправить свои данные в сценарий php для обработки, потому что когда он поступает в сценарий, данные больше не являются строкой, способной json_decode. Вот мой код NodeJs:

dataString=JSON.stringify(data.user);
child_process.exec('php '+global.defaultPath+'php_functions\\authenticate.php ' + dataString, function (err, stdout, stderr){
if (err) {
console.log(err);
}
stdout=JSON.parse(stdout);
if (stdout.status==1) global.connections[connection.suid].uid=stdout.uid;
});

А вот и начало файла authenticate.php:

if (empty($argv[1])) {
echo "No user to authenticate...";
exit;
}

$user=json_decode($argv[1]);

Функция json_decode в файле php всегда возвращает ноль, а код ошибки равен 4 (СИНТАКСИС ПЛОХОЙ). Если я регистрирую dataString в скрипте сервера, он возвращает:

{"uid":"1","accounthash":"4971b021ad2824fd42848e06bdce4d2b","suid":"xgv7-1"}

но когда он прибывает в скрипт php, «метки отсутствуют»:

{uid:1,accounthash:4971b021ad2824fd42848e06bdce4d2b,suid:xgv7-1}

Как я могу отправить объект JavaScript в сценарий PHP?

0

Решение

  1. Попробуйте избежать кавычек.
  2. Отправить объект JSON в виде строки внутри «{}»

EX:

php -f authenticate.php "{\"uid\":\"1\",\"accounthash\":\"4971b021ad2824fd42848e06bdce4d2b\",\"suid\":\"xgv7-1\"}"
0

Другие решения

Других решений пока нет …