【问题标题】:Node.js child_process.exec()Node.js child_process.exec()
【发布时间】:2012-11-01 12:16:24
【问题描述】:

我正在尝试在节点中执行子进程,其名称来自发布请求。我使用的是快递,因此是 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);
    }
  });

});

不起作用的部分是当我尝试使用动态命令构建命令字符串时。我可以对命令变量进行硬编码,它可以工作,但是当我使用变量“控制器”时,它不会执行我的进程。另外,有没有办法响应子进程的返回值,还是我必须坚持只使用标准输出?

【问题讨论】:

    标签: node.js express buffer


    【解决方案1】:

    您可以通过 req.body 访问请求参数

    var command = req.body.theparam;
    

    【讨论】:

    • 感谢这让我的代码变得更好了。但是仍然无法构建有效的命令字符串,有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 2019-09-11
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    相关资源
    最近更新 更多