我正在尝试构建以下代码以使节点运行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行。
请提出任何建议
非常感谢答案 0 :(得分:-1)
好的,似乎输出永远不会发送到' stdout'事件,但' stderr'。用java.stderr.on替换java.stdout.on修复了问题,即使java退出状态为0。
我不确定为什么会这样。