gpt4 book ai didi

node.js - Nodejs子进程stdin.write无回调

转载 作者:太空宇宙 更新时间:2023-11-03 23:42:51 25 4
gpt4 key购买 nike

我已经生成了一个“保持事件”的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 请求回调?

最佳答案

使用一次:

app.get("/some_request", function(req, res){
child.stdin.write("some_request\n");
child.stdout.once('data', function(result){
res.send(result);
});
});

关于node.js - Nodejs子进程stdin.write无回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19961193/

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