我对NodeJS还很陌生,所以如果我的问题的答案是显而易见的,我表示歉意。 我正在尝试将数据从python文件发送到NodeJS服务器。 诀窍是我的python文件有一个无限循环,因为它我得到了错误:不能设置头后,他们被发送到客户端。
我还没有找到让我的代码工作的方法。
下面是我的python文件:
import time
number = 1
print(number)
while True:
number +=1
print(number)
下面是我的节点文件:
let express = require('express');
let app = express();
app.get('/', compteur)
function compteur(req, res) {
const spawn = require('child_process').spawn;
const process = spawn('python', ['./hello.py']);
process.stdout.on('data', data => {
res.send(data.toString());
});
}
app.listen(8080, function() {
console.log('server running on port 8080');
});
对于info,我知道我在这里使用的代码是基础的,但是对于我的项目,我有一个python代码,它不断地从传感器发送数据,这就是为什么我用这个例子进行测试的原因。 我相信错误来自于一个回调函数,但我还没能修复它。
我对NodeJS还是个新手,所以如果我犯了一个基本的错误,我很抱歉。
您的python代码并不是导致问题的原因。
您试图多次响应同一个请求(您不能这样做,因为HTTP不是这样工作的>;一个请求/一个响应)。
这个
process.stdout.on('data', data => {
res.send(data.toString());
});
每次data
事件激发时都会调用。 只需存储数据并在end
事件中的process.stdout.on
外部发送响应。
类似于
// init data-container here
process.stdout.on('data', data => {
// append data to data-container
});
process.stdout.on('end', () => {
return res.send...
});