child_process exec无法响应客户端浏览器

时间:2012-04-28 17:50:02

标签: node.js

我正在尝试通过child_process模块执行命令并将结果响应到客户端浏览器,如下所示,console.log(stdout)工作查找,但response.write()无法正常工作。

function start(response) {
    dir_list(function(stdout) {
        response.writeHead(200, {"Content-Type": "text/plain"});
        response.write(stdout);
        console.log(stdout);
        response.end();
});     

function dir_list(callback) {
     var exec = require('child_process').exec
     child = exec('ls -la', function(error, stdout, stderr) {
         callback(stdout);
     });
}

以上代码由我引用,我所参考 Node.js: Object value as stdout of child_process.exec,但是,不幸的是,它对我不起作用。

顺便说一下,我原来的代码是:

  function start(response) {
      console.log("Request handler 'start' was called.");
      var exec = require('child_process').exec;
      exec("ls -lah", function (error, stdout, stderr) {
      response.writeHead(200, {"Content-Type": "text/plain"});
      response.write(stdout);
      console.log(stdout);
      response.end();
 });

1 个答案:

答案 0 :(得分:1)

您的代码在}函数末尾缺少关闭start

function start(response) {
    dir_list(function(stdout) {
        response.writeHead(200, {"Content-Type": "text/plain"});
        response.write(stdout);
        console.log(stdout);
        response.end();
    });
}

function dir_list(callback) {
     var exec = require('child_process').exec
     child = exec('ls -la', function(error, stdout, stderr) {
         callback(stdout);
     });
}
相关问题