2012-03-16 2 views
0

내 클라이언트가 직접 rmi 서버에 명령을 보내도록 js lib를 작성했습니다. 그것은 좋은 일하지만 지금은 동일한 서버에 연결하는 서버 코드의 비트를 작성해야합니다. 그래서 Node.js를 사용하고 싶습니다. 그러나 나는 어려움을 쥐고있는 개념을 가지고있다.nodejs에서 클라이언트 js 코드를 사용하는 방법

내 라이브러리가 brouwser (chrome, firefox 및 ie)에서 작동하지만 Node.js에서도 사용할 수 있습니다 (작은 동작 포함). 그렇게하면 거의 동일한 코드를 2 개 유지할 필요가 없습니다.

당신은 방금 네임 스페이스를 선언하고 그 안에 모든 기능을 채워 넣었습니다. node.js에서 나는 내 파일을로드하고 변수로 내보내는 변수에 내용을 채우기 위해 require을 사용합니다.

예를 들어 './m4a.structure.js'는 전역 m4a.structure를 설정합니다. './m4a.cmd.js'는 그 구조를 사용하여 (서버에 stuf를 보내는 프록시로 작동하는) 메소드 부치를 생성합니다. Finaly 거기에 './jquery.m4a.initialize.js'요청을 보내고 그 같은 현금 및 물건을 처리 jquery 물건을 바인딩합니다.

첫 번째 두 파일에는 정보가 여전히 포함되어있어 (주별로) 매주 변경되므로 브라우저와 Node.js 데몬 비트 모두에서 계속 사용할 수 있기를 바랍니다. 코스를 벗어난 마지막 파일은 그다지 크지 않으며 그 대신에 특정 브라우저를위한 것이 아닙니다. 내가 이식 할 수 없다면 나는 (그리고 심지어 기대합니다) 신경 쓰지 않을 것입니다.

나는 명확하고 당신이 나를 조금 도울 수 있기를 바랍니다.

답변

4

예를 들어 다음과 같이 사용할 수있는 모듈을 만드는 가장 간단한 방법은 다음과 같습니다.

var Foo = function() { 
}; 

Foo.prototype.bar = function() { 
}; 

if(typeof exports !== 'undefined') { 
    // Node.js or similar 
    exports.Foo = Foo; 
} else { 
    // Browser -- this is window 
    this.Foo = Foo; 
} 
+1

애디 오스 마니 모든 다른 로더 프레임 워크에 대해 (http://addyosmani.com/writing-modular-js/)는 [좋은 글]를 작성했습니다하십시오 Node.js를 모듈과 브라우저에서이입니다. –

+0

고마워.이 js는 때로는 좋은 것입니다. : D – Bram

+0

노드에서'this'는 모듈을 가리키고 있기 때문에 브라우저에서'this.Foo = Foo; '를 사용하여 함수를 내보낼 수 있습니다. –

관련 문제