2016-12-31 29 views
0

私はサーバー(nodejs)とクライアント(javascript)で使用できる1つの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'); 

もしそうでない場合は、達成しようとしている別の方法があるかもしれません。

少し混乱するかもしれませんが、お手伝いが大変ありがとうございます。

ありがとうございます。

デビッド

答えて

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を探しますが、必要に応じて除外するのは簡単です。

関連する問題