我们使用内置的应用程序nodejs
,express
和child_process.spawn
.一个要求是我们需要在运行时生成一个进程并捕获它的输出并将其呈现给用户.
我们有这个工作.但是,我们需要找出一种流式传输输出的方法,而不是等到子进程存在.
我们环顾四周,找不到任何明确的例子,并想知道这里是否有人有任何想法?
一切正常.我们只是不关心在显示整个输出之前必须等待命令完成的用户体验.如果我们可以流式传输它,那将是理想的,因为当触发stdout数据事件时,浏览器将使用新数据进行更新.就像现在它确实是大块而不是一个大blob ..所以这很适合这样做.
Express路由的响应对象也是可写流的实例,因此允许您将子进程的流传stdio
递给响应.
app.get('/path', function(req, res) { var child = spawn('ls', ['-al']); child.stdout.pipe(res); });