2011-11-20 8 views
1

child_process를 사용하여 Node.js에서 프로그래밍 방식으로 실행되는 프로그램이 있습니다.Node.js의 생성 된 프로세스에 사용자가 데이터를 입력하는 방법

var spawnedProcess = childProcess.spawn(command, args); 

spawnedProcess.stdout.setEncoding("utf8"); 
spawnedProcess.stdout.on("data", function(data) { 
    return process.stdout.write(data); 
}); 

process.stdin.pipe(spawnedProcess.stdin); 

내가 쉘에 입력 한 모든 내용이 생성 된 프로세스의 표준 입력으로 파이프되기 때문에이 방법이 효과가 있다고 생각했습니다.

내가 입력 한 것을 볼 수 있으며 Enter 키를 누르면 나에게 새로운 줄을 제공합니다. 쉘이 입력에 응답하지 않습니다.

단서가 있습니까?

+0

실행하려는 명령은 무엇입니까? – thejh

+0

"npm init"및 "jitsu deploy". – ajsie

+0

npm은 프로그래밍 방식으로 사용할 수 있습니다 (모듈로 설치할 수 있음). jitsu에 대한 확신이 없습니다. – thejh

답변

1

주석에서 언급했듯이 실제로 npm과 jitsu를 둘 다 사용할 수 있습니다. 둘 다 잠재적으로 모듈로 직접 사용될 수 있습니다. 이를 옵션으로 생각할 수도 있습니다. 명령 줄에서 실행할

,이 두 스크립트를 실행하고있는 모든 :하지만 귀하의 질문에 대답하기 위해

, 그것은 완전히 잘 보인다 1 비트 제외.

'파이프'라고 부르는 곳을 어딘가에 추가하면됩니다. 파이프에 연결하기 전에 stdin 스트림을 다시 시작해야합니다.

process.stdin.resume() 
관련 문제