javascript python将stdout刷新到nodejs后如何将接收到的数据转换为缓冲区类型的数组

jv4diomz  于 2022-12-28  发布在  Java
关注(0)|答案(1)|浏览(96)

我有一个称为Python脚本的NodeJS后端,然后使用Stdout.Flush将JSON发送到NodeJS后端。
在python脚本的末尾:

sys.stdout.write(json.dumps(json_dict))
sys.stdout.flush()

在nodej后端:

app.get('/records', (req, res) => {
    const { spawn } = require('child_process');
    const pyProg = spawn('python', ['script.py']);
    pyProg.stdout.on('data', function (data) {
        console.log(data.toString());
        return res.json({ success: true, data });
    });
})

然后我使用fetch获取前端的数据:

fetch('/records')
        .then((response) => response.json())
        .then((response) => {
            if (response.success && response.data) {
                console.log(response.data);

当我response.data在控制台中打印www.example.com时,我得到的是这样的:第一个月
我怎样才能在前端得到json格式或字符串格式的json_dict,以便显示内容?我得到的是389个数字,如下所示:

data: 
Array(389)
[0 … 99]
[100 … 199]
[200 … 299]
[300 … 388]
length: 389

我尝试了许多方法来转换数组(389),但没有工作。谢谢

xmakbtuz

xmakbtuz1#

在后端,您可以将数据作为字符串发送到前端

app.get('/records', (req, res) => {
    const { spawn } = require('child_process');
    const pyProg = spawn('python', ['script.py']);
    pyProg.stdout.on('data', function (data) {
        // Parse the string as JSON
        const jsonData = JSON.parse(data.toString());
        // Send the JSON object to the frontend
        return res.json({ success: true, data: jsonData });
    });
});

相关问题