1. 执行外部命令:
const { exec } = require('child_process');
// 执行 shell 命令
exec('ls -l', (error, stdout, stderr) => {
if (error) {
console.error(`Error: ${error.message}`);
return;
}
console.log(`stdout: ${stdout}`);
console.error(`stderr: ${stderr}`);
});
在上述示例中,exec 函数用于执行一个 shell 命令。回调函数将在命令执行完成后被调用,可以获取标准输出、标准错误和错误信息。
2. 生成子进程:
const { spawn } = require('child_process');
// 生成子进程执行命令
const ls = spawn('ls', ['-l', '-a']);
// 监听子进程的标准输出
ls.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
// 监听子进程的标准错误
ls.stderr.on('data', (data) => {
console.error(`stderr: ${data}`);
});
// 监听子进程关闭事件
ls.on('close', (code) => {
console.log(`Child process exited with code ${code}`);
});
在上述示例中,spawn 函数用于生成一个子进程,并执行指定的命令。可以通过监听子进程的标准输出、标准错误以及关闭事件来获取相关信息。
3. 使用 execFile 执行可执行文件:
const { execFile } = require('child_process');
// 执行可执行文件
execFile('node', ['--version'], (error, stdout, stderr) => {
if (error) {
console.error(`Error: ${error.message}`);
return;
}
console.log(`stdout: ${stdout}`);
console.error(`stderr: ${stderr}`);
});
execFile 函数用于执行指定的可执行文件,例如执行 Node.js 进程并获取其版本号。
这些示例演示了如何使用 child_process 模块生成和与子进程进行交互。这对于在 Node.js 中执行外部命令或脚本非常有用。在实际应用中,你可能需要更复杂的子进程交互,例如通过 stdin 输入数据、通过事件进行更复杂的通信等。
转载请注明出处:http://www.zyzy.cn/article/detail/4764/Node.js