如何获得命令的返回?
我正在开发一个为Linux发送命令的WebApp。 为此,我在客户端上使用Javascript / jQuery,在服务器上使用Node.js。 我的代码是这样的:
客户端
$("#myLink").click(function() { $.get('http://myHost:myPort', {cmd: "rhythmbox-client --print-playing"}); });
服务器端(commands.js)
var exec = require('child_process').exec; var express = require('express'); var app = express(); app.get('/commands', function(req, res) { var command = exec(req.query.cmd); }); app.listen(3000);
这正常工作和执行命令。 我需要的是获得该命令生成的返回,例如,如果在terminal中运行“rhythmbox-client –print-playing”命令,它将返回当前正在播放的歌曲的名称。 我想在我的应用程序的HTML页面中使用这个名字。
我应该在我的代码中更改以获取执行命令生成的返回?
谢谢(对不起,我的英文不好)
将一个callback函数传递给exec来获取命令输出,如下所示:
var command = exec(req.query.cmd, function(err, stdout, stderr) { res.send(stdout); });