gpt4 book ai didi

python - NodeJS 与 Express 和 python 交互脚本

转载 作者:太空宇宙 更新时间:2023-11-04 02:22:29 25 4
gpt4 key购买 nike

我有一个与我的 3D 打印机对话的 Python 交互式脚本。如果我打开此脚本,我会键入两个命令,将信息输出到 stdout:

  1. 以 250000 波特率连接到打印机 (USB)
  2. 获取温度

我希望与打印机的连接永久保持,因为将来我可能会再次连接到脚本以轮询当前打印作业的预计到达时间。

然后,带有 Express 的 NodeJS 允许我创建一个简单的 Web API,该 API 使用 child process 与此脚本进行通信。 ,但我遇到了很多错误。

我的代码:

var express = require('express');
var app = express();
var child_process = require('child_process');
spawn = child_process.spawn;

var n = child_process.spawn('/home/pi/virtualenvs/printrun/bin/python', ['-i','-u','/home/pi/projects/printrun/Printrun/pronsole.py']);
n.stdin.write('connect /dev/ttyACM0 250000');
n.stdin.write('\n');

app.get('/printer_temp', function (req, res) {
n.stdin.write('gettemp');
n.stdin.write('\n');

n.stdout.on('data', function(data){
res.json({printer_status: data}); //I should get kind of like an "OK", with a bunch of other lines.
});

});


var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Starting server');
});

我收到错误第 29 行:错误:发送后无法设置 header 。

我做错了什么?

最佳答案

这是express,告诉您在发送到客户端后无法修改HTTP header 的内容。在某些时候,您的系统试图对 header 执行某些操作,但 Express 解释说它无法访问该 header 。问题很可能不在上面的代码中。

我为此奋斗了几天。使用 Node 很难掌握的一件事是事件的处理方式以及何时可以执行操作。

请查看这个问题(255 票赞成,所以你并不孤单),它应该很清楚:Error: Can't set headers after they are sent to the client

关于python - NodeJS 与 Express 和 python 交互脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32501999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com