Для выполнения команд Bash в Node.js вы можете использовать модуль child_process, который обеспечивает функциональность для создания подпроцессов. Вот несколько методов, которые вы можете использовать:
- exec(): метод
exec()
используется для запуска команды в оболочке и буферизации вывода. Для обработки вывода требуется команда в виде строки и функция обратного вызова.
const { exec } = require('child_process');
exec('ls -l', (error, stdout, stderr) => {
if (error) {
console.error(`Error: ${error.message}`);
return;
}
if (stderr) {
console.error(`stderr: ${stderr}`);
return;
}
console.log(`stdout: ${stdout}`);
});
- spawn(): метод
spawn()
запускает команду в новом процессе и обеспечивает потоковый доступ к stdin, stdout и stderr. Он возвращает объект ChildProcess.
const { spawn } = require('child_process');
const ls = spawn('ls', ['-l']);
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}`);
});
- execFile(): метод
execFile()
аналогиченexec()
, но позволяет указать команду в виде файла, а не командной строки оболочки..
const { execFile } = require('child_process');
execFile('ls', ['-l'], (error, stdout, stderr) => {
if (error) {
console.error(`Error: ${error.message}`);
return;
}
if (stderr) {
console.error(`stderr: ${stderr}`);
return;
}
console.log(`stdout: ${stdout}`);
});
Эти методы предоставляют различные способы выполнения команд Bash в приложении Node.js. Не забывайте обрабатывать ошибки и выводить данные в соответствии с вашими конкретными требованиями.