2012-09-17 1 views
2

레일스와 같은 프레임 워크의 즐거움 중 하나는 명령 행에서 모델과 상호 작용할 수 있다는 것입니다. node.js에 익숙하지 않은 나는 종종 앱 코드 덩어리를 REPL에 붙여 넣어 객체를 가지고 놀았다. 더러운거야.노드의 앱 코드와 상호 작용

숙련 된 노드 개발자가 node 프롬프트에서 자신의 앱 관련 항목에 액세스하는 데 사용하는 마법의 탄환이 있습니까? 해결 방법은 전체 앱 또는 앱의 일부를 모듈로 묶어 require() d가 될 수 있습니까? 나는 아직도 하나의 큰 올 '파일 땅에 살고 있습니다. 그래서 모든 것을 꺼내는 것은 피할 수없는 일입니다. 조금 힘듭니다.

미리 알려 주시면 감사하겠습니다.

답변

1

하나의 큰 올드 파일 랜드는 실제로 당신이하고 싶은 일을하기에 좋은 곳입니다. Nodejs는 require 코드 자체의 REPL이기도하므로 복사 및 붙여 넣기를 줄일 수 있습니다.

다음은 내 프로젝트 중 하나의 간단한 예입니다. 파일 상단 부근에서 다음과 유사한 작업을 수행하십시오.

function _cb() { 
    console.log(arguments) 
} 

var repl = require("repl"); 
var context = repl.start("$ ").context; 
context.cb = _cb; 

이제 코드 전체에서 컨텍스트에 추가하면됩니다. _cb는 하나를 필요로하는 함수 호출로 재생할 더미 콜백입니다 (그리고 반환 할 내용을보십시오). REPL의 API가 상당히 변경되었습니다처럼

1

이 코드는 나를 위해 작동 같다 :

var replServer = repl.start({ 
    prompt: "node > ", 
    input: process.stdin, 
    output: process.stdout, 
    useGlobal: true 
    }); 
    replServer.on('exit', function() { 
    console.log("REPL DONE"); 
    }); 
0

당신은이 대답 https://stackoverflow.com/a/27536499/1936097에서 좀 걸릴 수 있습니다. 이 코드는 파일이 노드에서 직접 실행되고 모든 선언 된 메소드 및 변수를 컨텍스트에 자동으로 추가하는 경우 자동으로 REPL을로드합니다.