В Node.js вы можете запускать команды оболочки различными методами. Вот несколько подходов, которые вы можете использовать:
- Модуль дочерних процессов: Node.js имеет встроенный модуль
child_process
, который позволяет создавать дочерние процессы и выполнять команды оболочки. Вы можете использовать функцииexec
илиspawn
для запуска команд оболочки.
const { exec } = require('child_process');
exec('your-shell-command', (error, stdout, stderr) => {
if (error) {
console.error(`Error: ${error.message}`);
return;
}
console.log(`Command output: ${stdout}`);
});
- ShellJS: ShellJS — это переносимая реализация команд оболочки Unix для Node.js. Он предоставляет простой и согласованный API для запуска команд оболочки.
const shell = require('shelljs');
const result = shell.exec('your-shell-command');
console.log(`Command output: ${result.stdout}`);
- Execa: Execa — это кроссплатформенный пакет для запуска команд оболочки. Он предоставляет дополнительные функции, такие как API на основе обещаний, улучшенную поддержку Windows и обработку потоков.
const execa = require('execa');
execa('your-shell-command')
.then(result => {
console.log(`Command output: ${result.stdout}`);
})
.catch(error => {
console.error(`Error: ${error.message}`);
});
- Пакеты выполнения оболочки. Существует несколько пакетов Node.js, специально предназначенных для выполнения команд оболочки, например
node-cmd
,node-pty
иnode. -shell
.
Обратите внимание, что выполнение команд оболочки из Node.js может представлять угрозу безопасности, если к нему не относиться осторожно. Обязательно проверяйте и очищайте вводимые пользователем данные и избегайте выполнения произвольных команд, вводимых пользователем.