在node中,child_process这个模块非常重要。掌握了它,等于在node的世界开启了一扇新的大门。熟悉shell脚本的同学,可以用它来完成很多有意思的事情,比如文件压缩、增量部署等,感兴趣的同学,看文本文后可以尝试下。
举个简单的例子:
const spawn = require('child_process').spawn;
const ls = spawn('ls', ['-lh', '/usr']);
const iconv = require('iconv-lite'); // 解决中文乱码的问题
const encoding = 'cp936';
const binaryEncoding = 'binary';
ls.stdout.on('data', (data) => {
stdout = toGBK(data)
console.log(`stdout: ${stdout }`);
});
ls.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
ls.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
function toGBK (str) {
return iconv.decode(Buffer.from(str, binaryEncoding), encoding)
}