Как запустить системные команды в javascript?

Мне нужно перечислить все файлы в javascript, такие как"ls"??

5 ответов


пожалуйста, дайте больше информации о вашей среде.

непривилегированный JavaScript в браузере не может ни перечислять файлы, ни выполнять программы по соображениям безопасности.

в узел.js, например, выполнение программ работает следующим образом:

var spawn = require('child_process').spawn,
var ls  = spawn('ls', ['-l']);
ls.stdout.on('data', function (data) {
   console.log(data);
});

и есть прямой способ перечислить файлы с помощью readdir ()


вы не можете запускать системные команды на клиенте с JS, так как он работает внутри песочницы браузера. Вам нужно будет использовать некоторые другие технологии на стороне клиента, такие как Flash, ActiveX или, возможно, апплеты


AFAIK, вы не можете запустить любую системную команду, это нарушит модель безопасности. Вы можете отправить команду печати, но я задаюсь вопросом, что за этим возможно.


еще более простой способ в узле.js is:

var fs = require('fs');
var ls = fs.readdirSync('/usr');

переменная ls теперь содержит массив с именами файлов в /usr.


короткий ответ - вы не должны делать этого, так как это открывает огромный атаки против вашего приложения. Представьте, что кто-то бежит "rm -rf" :).

Если вы должны это сделать, и вы на 1000% уверены, что разрешаете только несколько команд, которые не могут причинить никакого вреда, вы можете вызвать страницу сервера с помощью Ajax. Эта страница может выполнить указанную команду и вернуть ответ. Еще раз подчеркиваю, что это огромный риск для безопасности и лучше этого не делать.