我产生了一个“保持活动状态”的 nodejs 子进程,它会响应传入的 http get 请求。
var spawn = require("child_process").spawn;
var child = spawn("long_live_exe");
app.get("/some_request", function(req, res){
child.stdin.write("some_request\n");
res.send("task completed");
});
理想情况下,我想发回响应,基于child.stdout
,像这样
app.get("/some_request", function(req, res){
child.stdin.write("some_request\n");
child.stdout.on('data', function(result){
res.send(result);
});
});
问题是每个请求,stdout.on
事件函数都会再连接一次。这不是一件坏事吗?
不知何故,如果我可以从中获取回调函数stdin.write
,想象一下我是否可以编写代码
app.get("/some_request", function(req, res){
child.stdin.write("some_request\n", function(reply){
res.send(reply);
});
});
问题是如何反馈child.stdout.on
一个http请求回调?