получаем власть над дочерними процессами в nodejs я спал очень и очень малодарова, ты юный хацкер и хочешь (чего???) управлять процессами из под ноде жс (node js)????
тогда тебе к нам!
стоит иметь ввиду, что это не такое уж и простое занятие!!!
первые запросы в гугле (яндекс ищет лучше, имхо) покажут тебе дорогу к child_process, твое внимание может привлечь метод fork, НО! это не то, что тебе нужно, я уверяю
этот жук не так и прост, как и мои не смешные шутки... да, нам действительно нужен child_process, а именно его метод spawn
на самом деле в ноде есть всё необходимое, главное внимательно читать доку (чего я не делал) итак, что же я подразумеваю под управлением (власть) в этом посте?
власть (оно же управление) - это возможность взаимодействовать с дочерним процессом
например, у нас есть простенький скриптик на хуйнеpython, да? он принимает два числа через функцию input, затем складывает их и через print выводит это дело в консоль
казалось бы, были бы мы
человеками, мы бы просто запустили его в консоли, произвели вычисление и записали результат куда надо
но нам нужна власть схема проста: вызываем этот скриптик через ноду (не забудь подключить сам child_process(cp, ахахаха, cp,
не смешно.) var process = cp.spawn('python3', ['script.py'])
теперь
внимание у нас есть всё для власти!
но, будь
внимателен начнем с того, что я рот ебал буферы
поэтому важная вещь!
устанавливаем кодировку для наших стримов (
че такое эти ваши стримы блятб )
cp.stdout.setEncoding('utf8')
класс
мы красавчики
мы сделали почти самое сложное
теперь все, что нам будет плевать в литсоконсоль скрипт (а точнее, плевал бы) мы можем отловить (€ловец£душ)
как?
cp.stdout.on('data', Func)
Func - твоя функция, блять, создай её, перестань бездумно копипастить, сука (в первый аргумент и проходят строки)
остается самая малость
плеваться в ответ.
для ответных плевков нужно аще на похуй юзать следующую вещь:
cp.stdin.write(Buffer.from(OURMESSAGE + '\n'))
всё
мы создаем буфер из строки, что хотим отправить (q: 'а я хочу число!!!', a: 'ты даун?') ПЛЮС '\n'
зачем '\n'?
потому что, блять, после ввода строки в консоль ты жмешь enter, сука, его мы и "жмем", прибавляя '\n'
хеппи енд статья бесполезная, по сути, я просто сделал краткую и хуевыю выжимку из документации к
ср,
стримам и буферам (ссылку не дам.)
вообще лучше все это самим почитать, пусть и через переводчик, интересно пиздец