我正在尝试让我的reactjs应用程序与python脚本(执行shell命令)进行通信。
这是我的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'});
});
包装方法正在调用我的后端网址:
export default function callData() {
return axios.get('/getAPIToken');
}
最后,在我的App.js中,我写了以下内容:
callData().then(response => {
console.log('response: ', response);
});
代码停留在pythonProcess.stdout.on('data', (data) => {
上,我不确定自己做错了什么。 javascript文件和python文件都在同一目录中。