Как исправить ошибку ввода - ссылку выводит только для предыдущего сообщения?

Подключил PHP скрипт к боту на Node.js, и после запроса оно должно выдавать ссылку, но оно выводит только для предыдущего сообщения:

var runner = require("child_process");                                                                                        
var phpScriptPath = "file.php";                                                                                                                 
var argsString = "value,value2,value";                                                                                                         
runner.exec("php " + phpScriptPath + " " +argsString, function(err, phpResponse, stderr) {                                                         
 if(err) console.log(err); /* log error */                                                                                           
 const chatId = msg.chat.id;                                                                                                        
bot.sendMessage(chatId, phpResponse );
});

Nа PHP просто: echo = $source;


Ответы (1 шт):

Автор решения: nörbörnën

Скорее всего, проблема в логике реализованной в file.php (или проблема связана с передаваемыми параметрами)

Ваш скрипт нормально работает, это легко подтвердить:

переписал запускаемый exec-ом скрипт на более близкий мне

const runner = require('child_process');
const path = require('path');

const phpScriptPath = path.join(__dirname, './script.pl');
const argsString = `value,value2,value,${Date.now()}`;
runner.exec(
  `/usr/local/bin/perl ${phpScriptPath} ${argsString}`,
  (err, phpResponse) => {
    if (err) {
      console.log(err);
    }
    console.log(`RESULT=${phpResponse}`);
  }
);

В консоли всё как ожидалось - эхо, метка времени обновляется:

$ node src/child-process-perl/index.js 
RESULT=$VAR1 = {
          'time' => 1620913465,
          'argv' => [
                      'value,value2,value,1620913463899'
                    ]
        };

$ node src/child-process-perl/index.js 
RESULT=$VAR1 = {
          'time' => 1620913469,
          'argv' => [
                      'value,value2,value,1620913467212'
                    ]
        };
→ Ссылка