Node.js用Java生成

时间:2016-07-12 14:53:02

标签: java node.js

我正在尝试构建以下代码以使节点运行java程序。但是没有任何事情发生,我真的不知道如何调试。

var express = require('express');
var bodyParser = require('body-parser');
var app = express();

app.use(express.static('resources'));
app.use(express.static(__dirname));
app.use(bodyParser.urlencoded({extended : false}));

app.get('/', function (req, res) {
   res.sendFile( __dirname + "/" + "index.html" );
})

app.post('/java_preview', function (req, res) {

   console.log("Request for java_preivew:");
   console.log(req.body.url);                 //LINE X
   console.log(req.body.tableparserClass);    //LINE Y

   var spawn = require('child_process').spawn;
   var java = spawn('java', ['-version']);
   java.stdout.on('data', function(data) {  //LINE A
      console.log(data);                    //LINE B
      //io.emit('chat message', data.toString())
   });

当发布请求' / java_preview'时,第X行和第Y行都有效。但是,服务器控制台上没有更多输出。使用node-inspector进行调试时,我在A行和B行放置了一个断点。但是没有调用B行。

请提出任何建议

非常感谢

1 个答案:

答案 0 :(得分:-1)

好的,似乎输出永远不会发送到' stdout'事件,但' stderr'。用java.stderr.on替换java.stdout.on修复了问题,即使java退出状态为0。

我不确定为什么会这样。