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 に答える