12.node向操作系统发送命令

2019-09-25  本文已影响0人  讲武德的年轻人

node向后端Linux发送一条指令:ls -lh /usr,指令的返回数据展示到process_get中

const express = require('express');
const app = express();
const { spawn } = require('child_process');

const ls = spawn('ls', ['-lh', '/usr']);
let result = '';

app.get('/index.html', function (req, res) {
   res.sendFile( __dirname + "/" + "index_linux.html" );
})

ls.stdout.on('data', (data) => {
    result += (`stdout: ${data}`)
  });
  
  ls.stderr.on('data', (data) => {
    console.log(`stderr: ${data}`);
  });
  
  ls.on('close', (code) => {
    console.log(`child process exited with code ${code}`);
  });

app.get('/process_get', function (req, res) {
   res.send(result);
})
 
var server = app.listen(8080, function () {
 
  var host = server.address().address
  var port = server.address().port
  console.log(server.address())
  console.log("应用实例,访问地址为 http://%s:%s", host, port)
 
})

<html>
    <body>
        <form action="/process_get" method="GET">
            请输入Linux命令:<input type="text">
            <input type="submit" value="Submit">
        </form>
    </body>
</html>
运行node express_linux.js
点击Submit,跳转至相应页面

在Windows上的话,得这样干:

const ls = spawn('cmd.exe',['/c','1.bat']);

上一篇 下一篇

猜你喜欢

热点阅读