2014-11-18 2 views
2

SlimerJS에 도움이 필요합니다. 기본적으로 내 프로그램은 다음 작업을 수행하기 위해 주기적으로 입력을 받아야합니다.외부 입력을 SlimerJS 스크립트에 동적으로 주입하는 방법은 무엇입니까?

다음 코드는 외부 입력에서 읽을 경우 PhantomJS + CasperJS와 잘 작동하지만 SlimerJS + CasperJS에서는 동일하게 작동하지 않습니다.

some code ... 

var nextLink = system.stdin.readLine(); 

some code ... 

이 문제를 해결하는 방법에 대한 의견이 있으십니까?

답변

0

이것은 feature request on GitHub에 의해 명백하게 지원되지 않으며 documentationstdin 속성이 없습니다.

주로 두 가지 해결 방법이 있습니다. 두 언어 모두 원하는 언어로 두 번째 프로그램을 작성해야합니다 (PhantomJS 스크립트 일 수 있음). 무언가가 그 안에있을 때까지

  1. 당신이 입력을 얻을 필요가있다 CasperJS 스크립트의 시점에 와서

    , 당신은 미리 정의 된 파일을 여러 번 읽어 보시기 바랍니다. 그래서 CasperJS가이 시점에있을 때 두 번째 프로그램을 실행합니다. 프로그램은

    echo my text > predefinedFile.txt 
    

    또는 좀 더 정교한 명령과 같은 간단한 명령 일 수 있습니다.

    function poll(){ 
        var content = fs.read(predefinedFile).trim(); 
        if (!content) { 
         this.wait(1000, poll); 
        } else { 
         // do something sensible 
        } 
    } 
    //.... 
    casper.then(poll); 
    
  2. 당신이 그것을이 CasperJS 스크립트로 실행되는 경우 SlimerJS에 메시지를 보내는 데 사용할 수있는 webserver module 있습니다 : CasperJS에서 폴링 기능은 다음과 같이 될 것이다. 두 번째 프로그램은 실제 요청을 보내야합니다.