ノードで子プロセスを実行しようとしていますが、その名前は投稿リクエストから来ています。私はエクスプレスを使用しているため、app.post()。私のコードは以下です。
app.post('/*', function(req, res) {
var buf = new Buffer(256);
var cont_len = buf.write(req.url, -1);
var controller = buf.toString('utf8', 0, cont_len);
var controller = controller.concat(' ')
var args = req.param('args', null);
var command = __root+__controllers+controller+args;
console.log(command);
c = exec(command,
function (error, stdout, stderr) {
res.send(stdout);
res.send(stderr);
if (error !== null) {
res.send(error);
}
});
});
動作しないのは、動的コマンドを使用してコマンド文字列を作成しようとしたときです。コマンド変数をハードコーディングできますが、機能しますが、変数「コントローラー」を使用すると、プロセスが実行されません。また、子プロセスの戻り値で応答する方法はありますか、それとも標準出力のみを使用する必要がありますか?