2

我正在开发一个为 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);

这可以正常工作并执行命令。我需要的是获取该命令生成的返回,例如,如果我在终端中运行命令“rhythmbox-client --print-playing”,它将返回当前正在播放的歌曲的名称。我想在我的应用程序的 HTML 页面中使用这个名称。

我应该在我的代码中进行哪些更改以获取要执行的命令生成的返回?

谢谢(对不起我的英语不好)

4

1 回答 1

3

将回调函数传递给 exec 以获取命令输出,如下所示:

var command = exec(req.query.cmd, function(err, stdout, stderr) {
    res.send(stdout);
});
于 2013-08-30T03:50:24.080 回答