Я пытаюсь это:NodeJS - как получить порожденного ребенка для общения с родителем?
var child = spawn('node', args, {cwd: parentDir, stdio: 'ipc'});
(арг представляет собой массив параметров)
, но он дает следующее сообщение об ошибке:
TypeError: Incorrect value of stdio option: ipc
Это на самом деле работает, так что проблема кажется действительно является параметром stdio ipc:
var child = spawn('node', args, {cwd: parentDir});
Это также работает:
var child = spawn('node', args, {cwd: parentDir, stdio: 'pipe'});
Я прочитал это: http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options , но я не вижу, где я неправильно. Это первый случай, когда я пытаюсь использовать эту функциональность NodeJS, поэтому я сожалею, если проблема очевидна.
Возможно, есть другой способ решить проблему. Ребенок должен быть порожден и не разветвлен, и я просто хочу, чтобы вы могли отправлять сообщения от ребенка родительскому.
спасибо !!
EDIT: У меня есть узел v0.8.18. Я искал историю версий для IPC http://nodejs.org/changelog.html, и нет ничего с поисковым термином «IPC», который заставляет меня думать, что мне нужна более новая версия NodeJS.
Вам нужно указать опцию stdio? – dandavis
Думаю, что так. В противном случае он ничего не делает по умолчанию (из ссылки, помещенной в текст выше). Вот что он говорит о IPC: 'ipc' - Создайте канал IPC для передачи сообщений/файловых дескрипторов между родительским и дочерним. У ChildProcess может быть не более одного дескриптора файла IPC stdio. Установка этой опции позволяет использовать метод ChildProcess.send(). Если ребенок записывает сообщения JSON в этот файловый дескриптор, тогда это вызовет ChildProcess.on ('message'). Если ребенок является программой Node.js, то наличие канала IPC позволит process.send() и process.on ('message'). – rockamic