我想要做的是从一个正在写入标准输出的 scala 文件设置一个流,并将该输出通过管道传输到 node.js。例如写作.scala | node index.js 然后,在 node.js 中,我想读取每一行,并将其发送到客户端。有谁知道我该怎么做?有没有更好的方法来完成同样的事情?
问问题
768 次
2 回答
4
最简单的方法是scala
使用函数从节点应用程序中调用程序child_process.exec
:
var express = require('express');
var exec = require('child_process').exec;
var app = express();
app.get('/', function(req, res){
exec('your scala program',
function (error, stdout, stderr) {
res.send(stdout);
});
});
app.listen(3000);
如果您不关心错误,您可以使用它piping
来加速您的应用程序。在这种情况下node
,将在调用您的 scala 程序后立即开始向客户端发送数据。我不太确定语法,但应该看起来像这样:
var express = require('express');
var exec = require('child_process').exec;
var app = express();
app.get('/', function(req, res){
var child = exec('your scala program');
child.stdout.pipe(res);
});
app.listen(3000);
于 2013-04-07T20:26:21.943 回答
1
Leonids 的响应是 98% 正确接受,因为res
它是一个可写流并且stdout
是一个可读流,所以代码应该这样写:
...
exec('your scala program',
function (error, stdout, stderr) {
stdout.pipe(res);
});
...
于 2013-04-07T22:43:20.907 回答