如何让nodejs开发的rest api下面运行系统命令行?
比如rest api 是 http://url/lsdir
实际上后台调用的是shell的ls命令
本人新人请多指教
主要通过child_process模块来运行系统命令,并获取输出的内容。例:
var http = require('http'); var exec = require('child_process').exec; var server = http.createServer(function (req, res) { var cmd = req.url.substr(1); exec(cmd, function (err, stdout, stderr) { if (err) { res.end(err.toString()); } else { res.end('stdout:\n' + stdout + '\n\nstderr:\n' + stderr); } }); }); server.listen(80);
在浏览器中打开 http://127.0.0.1/ls 即可看到列出了当前目录的文件
这个就是webshell嘛,实现这简单的,接受参数,child_process.exec(),然后把结果返回。
多谢
看到这个就害怕
@leizongmin 话说回来, Vim 那个是… 不是这个的话怎么去实现啊?
不过不能无条件执行指令啊,否则会产生系统漏洞
哈哈,可怕的需求。
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
主要通过child_process模块来运行系统命令,并获取输出的内容。例:
在浏览器中打开 http://127.0.0.1/ls 即可看到列出了当前目录的文件
这个就是webshell嘛,实现这简单的,接受参数,child_process.exec(),然后把结果返回。
多谢
看到这个就害怕
@leizongmin 话说回来, Vim 那个是… 不是这个的话怎么去实现啊?
不过不能无条件执行指令啊,否则会产生系统漏洞
哈哈,可怕的需求。