2016-12-31 2 views
0

서버 (nodejs)와 클라이언트 (javascript)에서 사용할 수있는 js 파일을 작성할 수있는 인터페이스를 설정하려고합니다.노드 js는 파일 대신 코드가 필요합니다.

예제 파일은 멀티 플레이어 게임을 제작할 때 클라이언트와 서버 모두에서 사용하려는 Vector 객체입니다. Node.js를에서

, 나는

var Vector = require('./vector'); 

그런 다음 당신이 Vector를 입력하여 module.exports에 액세스 할 수 있습니다 ... 당신은 소스 파일을 필요로하는 다음 구문을 사용할 수 있다는 것을 알고있다. 클라이언트에서 필요하지 않습니다

여기서 문제는 서버 나 파일의 끝에 코드의 여분의 비트를 필요로한다는 것입니다 ...

module.exports = Vector; 

....

다음과 같은 소스 코드가 필요할 수 있습니까?

var data = (...) // get data from vector.js file 
var Vector = require_code(data + 'module.exports = Vector'); 

그렇지 않은 경우 달성하려는 다른 방법이있을 수 있습니다.

다소 혼란 스러울 지 모르지만 도움을 주시면 대단히 감사하겠습니다.

미리 감사드립니다.

David

답변

1

유니버설 모듈 정의 UMDs을 (를) 찾고 계시록.

(function (root, factory) { 
    if (typeof define === "function" && define.amd) { 
     define(["jquery", "underscore"], factory); 
    } else if (typeof exports === "object") { 
     module.exports = factory(require("jquery"), require("underscore")); 
    } else { 
     root.Requester = factory(root.$, root._); 
    } 
}(this, function ($, _) { 
    // this is where I defined my module implementation 

    var Requester = { // ... }; 

    return Requester; 
})); 

당신은 모듈의 이름으로 root.Requestor에서 이름을 변경해야합니다. root은 전체 개체가 될 this 값 또는 브라우저에서 일반적으로 window이라고하는 값을 선택합니다.

이 특정 예제는 예제 종속성으로 jQueryunderscore을 찾습니다. 그러나 필요한 경우이를 제외하기에 충분히 쉽습니다.