我正在开发一个小型网络应用程序,我希望能够让我的用户按下按钮并能够在服务器上远程执行脚本。我希望脚本的输出显示在客户端上。
我只是想了解实现这类功能的最佳方法。是否有任何库/结节让你直接做这样的事情?
答案 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
,并在以后与它进行交互。)