在服务器上执行脚本并使用node.js在客户端上显示脚本输出的最佳方法是什么?

时间:2015-12-15 07:15:14

标签: node.js

我正在开发一个小型网络应用程序,我希望能够让我的用户按下按钮并能够在服务器上远程执行脚本。我希望脚本的输出显示在客户端上。

我只是想了解实现这类功能的最佳方法。是否有任何库/结节让你直接做这样的事情?

可能的方法

  1. Child.process()

1 个答案:

答案 0 :(得分:0)

查看节点的child_process库。 Link

之前我使用过.exec函数,因为它运行一个脚本来完成并捕获输出。这听起来像你正在寻找的,只需用你的示例命令替换它。

var exec = require('child_process').exec,
    child;

child = exec('cat *.js bad_file | wc -l',
  function (error, stdout, stderr) {
    console.log('stdout: ' + stdout);
    console.log('stderr: ' + stderr);
    if (error !== null) {
      console.log('exec error: ' + error);
    }
});

在回调中包装此调用,当脚本完成时,您将获得对回调的响应,然后是客户端。通过HTTP请求了解您正在运行的脚本。像“运行任何命令”这样的打开字符串将是明显的安全问题,长时间运行的脚本将成为HTTP超时的问题。你可以实现一个基于WebSockets的解决方案,并在结果出现时显示管道结果(如果你想启动一个进程并使其保持运行,可以查看.spawn,并在以后与它进行交互。)