Как получить доступ к каждому фрагменту res.write() в react?

#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