Объект вызова Nodejs не выполняется - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь заставить мое приложение activjs взаимодействовать со скриптом Python (который выполняет команду оболочки).

Вот мой скрипт Python:

import subprocess, sys
fid = sys.argv[1]
p = subprocess.Popen(['date'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
(output, err) = p.communicate()
print(output.decode('ascii'))
sys.stdout.flush()

Вот функция javascript:

export function getData(fid) {
  const {spawn} = require("child_process");
  const pythonProcess = spawn('python', ['./getEpv.py', fid]);
  pythonProcess.stdout.on('data', (data) => {  // Code is stuck here
    console.log('Data output: ', data.toString());
    return data;
  });
}

Вот мой экспресс-бэкэнд, который вызывает метод getData ():

app.get('/getAPIToken', (req, res) => {
  console.log('getData: ', getEpv('XXX'));
  res.send({data: getData('XXX')});
  // res.send({data: 'TEST'});
});

Мой URL-адрес бэкенда вызывается методом оболочки:

export default function callData() {
  return axios.get('/getAPIToken');
}

Наконец, в моем App.js я написал следующее:

callData().then(response => {
      console.log('response: ', response);
    });

Код застрял на: pythonProcess.stdout.on('data', (data) => {, и я не уверен, что я сделал неправильно.и файл javascript, и файл python находятся в одном каталоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...