#javascript #node.js #reactjs
#javascript #node.js #reactjs
Вопрос:
Чего я хочу, так это всякий раз, когда python печатает инструкцию, которую он должен отправить в react, и после успешного запуска скрипта python он должен завершить объект ответа.
По состоянию на ДОКУМЕНТАЦИЮ res.write()
вышлю multiple responses
. Как получить доступ к этим res.write() для каждого фрагмента из react
. Я не знаю, возможно это или нет!. Если есть какие-либо другие способы сделать это, пожалуйста, предложите какой-нибудь альтернативный ответ
Узел JS
const express = require('express');
const app = express();
const cors = require('cors');
const bodyParser = require('body-parser');
app.use(cors());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(express.static(__dirname ''));
const { PythonShell } = require('python-shell')
app.get('/run', (req, res) => {
try {
let pyshell = new PythonShell('main.py');
pyshell.on('message', function (message) {
res.write(message)
});
pyshell.on('stderr', function (stderr) {
res.write("Failed", stderr)
});
pyshell.end(function (err, code, signal) {
if (err) {
console.log("Some Error Occured While Running Script!", err)
}
console.log('The exit code was: ' code);
console.log('The exit signal was: ' signal);
console.log('finished');
res.end()
});
} catch (error) {
console.log("Error", error)
}
});
app.listen(3000, error => {
if (error) {
console.log("Error", error)
}
console.log('Server listening on 3000');
});
Реагирующий код
componentDidMount() {
fetch('http://localhost:3000/run', {
method: 'GET', headers: { 'Content-Type': 'application/json' }
})
.then(response => console.log(response))
}
Комментарии:
1. Похоже, лучшим подходом было бы подключение приложения React напрямую к приложению Python через сокет-соединение. Пожалуйста, убедитесь, что это не проблема xy (спрашивая о вашем потенциально неподходящем решении, а не о вашей реальной проблеме)
2. Что вы подразумеваете под приложением на python? Можете ли вы уточнить?
3. Я имею
main.py
в виду скрипт Python, который вы запускаете на сервере4. Мой вопрос в том, чтобы получить значение res.write() в react