Чтобы выполнять команды оболочки с помощью Node.js, вы можете использовать несколько методов. Вот несколько часто используемых подходов:
- Модуль дочерних процессов. Модуль дочерних процессов в Node.js позволяет создавать дочерние процессы и выполнять команды оболочки. Вы можете использовать функции
exec
илиexecSync
для синхронного или асинхронного запуска команд соответственно.
Пример:
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
из модуля дочерних процессов — это еще один способ выполнения команд оболочки. Он обеспечивает большую гибкость и контроль над выполнением команд, позволяя осуществлять потоковую передачу ввода/вывода и обработку событий.
Пример:
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}`);
});
- Библиотека ShellJS: ShellJS — это переносимая библиотека команд оболочки Unix для Node.js, которая предоставляет простой и интуитивно понятный API для запуска команд оболочки.
Пример:
const shell = require('shelljs');
const result = shell.exec('ls -l');
if (result.code !== 0) {
console.error(`Command execution failed with code ${result.code}`);
return;
}
console.log(`stdout: ${result.stdout}`);
Это всего лишь несколько методов выполнения команд оболочки в Node.js. Не забывайте соблюдать осторожность при выполнении команд оболочки, поскольку они потенциально могут быть небезопасными, если их неправильно обрабатывать.