使用 javascript 中的 child_process 执行 shell 命令
Executing shell command using child_process in javascript
尝试从浏览器执行 shell 命令(任意)并使用 child_process 在 Ui 上打印结果。
无法从命令行获取结果asynchronously.Am我在这里遗漏了什么?
const exec = require('child_process').exec;
app.post('/plan',(req, res) => {
let cmd = exec('dir');
let output = "";
cmd.stdout.on('data', (data) => {
//console.log(`stderr: ${data}`);
output += data;
});
res.send(output); //not working
console.log(output); //its empty
cmd.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
cmd.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
});
shell 命令异步运行。您需要从回调函数中发送响应,以便它在完成执行时发送结果。
cmd.stdout.on('data', (data) => {
output += data;
res.send(output);
});
这样做可能更干净:
const exec = require('child_process').exec;
app.post('/plan',(req, res) => {
exec('dir', (error, stdout, stderr) => {
if (error) {
res.status(500).send(stderr);
return;
}
res.send(stdout);
});
});
尝试从浏览器执行 shell 命令(任意)并使用 child_process 在 Ui 上打印结果。
无法从命令行获取结果asynchronously.Am我在这里遗漏了什么?
const exec = require('child_process').exec;
app.post('/plan',(req, res) => {
let cmd = exec('dir');
let output = "";
cmd.stdout.on('data', (data) => {
//console.log(`stderr: ${data}`);
output += data;
});
res.send(output); //not working
console.log(output); //its empty
cmd.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
cmd.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
});
shell 命令异步运行。您需要从回调函数中发送响应,以便它在完成执行时发送结果。
cmd.stdout.on('data', (data) => {
output += data;
res.send(output);
});
这样做可能更干净:
const exec = require('child_process').exec;
app.post('/plan',(req, res) => {
exec('dir', (error, stdout, stderr) => {
if (error) {
res.status(500).send(stderr);
return;
}
res.send(stdout);
});
});