私はnode.js内の他のjsファイルのインクルードを整理しようとしています。ノードjsとnewが必要な場合
私はrequire関数と他の選択肢についてすべてを読んでおり、require関数を使うことに決めました(コードはブラウザではなくnode.jsでのみ使用されるため)。
私のコードでは、後でインスタンスを作成したい「オブジェクト」を作成するためにプロトタイプを使用しています。
それは私が(それがvehicle.js呼び出すことができます)、次のようなコードを書いてきた仕事を得るために:
var util = require('util');
var EventEmitter = require('events').EventEmitter;
module.exports = Vehicle;
util.inherits(Vehicle, EventEmitter);
function Vehicle(options) {
EventEmitter.call(this);
options = options || {};
...
}
Vehicle.prototype._doStartEvent = function(data) {
this.emit('start', data);
};
Vehicle.prototype.testRun = function() {
this._doStartEvent();
};
その後、私のメインのjs(server.jsそれを呼び出すことができます)には、私がしています次のようになります。
var test = exports;
exports.Vehicle = require('./vehicle.js');
var remoteVehicle = new test.Vehicle({address: "192.168.1.3"});
remoteVehicle.on('start', function(d) {console.log('started');});
remoteVehicle.testRun();
これですべて正常に動作しますが、何が起こっているのかよく分かりません。
私の主な関心事は、var test = exports;
を使用し、次にexports.Vehicle = require(...)
です。
new Vehicle
などを使用することを目標として、var vehicle = require(...).Vehicle
とvar vehicle = require(...)
のような処理を試みましたが、動作させることができませんでした。
私は輸出を強制的に使用していますか?その場合はなぜですか?
私はAR Droneプロジェクトを例として使用していますが、上記のコードはモジュールが内部的にどのように処理したかに基づいています。 Client.jsおよびindex.jsを参照してください。
このマスタリングノードのeBookへのパラメータとして使用することは良いです:http://visionmedia.github.com/masteringnode/book。 html – Alex
@LeonidBeschastnyこれは重複していますか?この質問が最初に尋ねられました(2013年7月11日に尋ねられました)。もしあなたが彼らが重複していると思うなら、もう1つの質問は重複したものであり、このものではありません。 – Metalskin
@ Metalskin申し訳ありませんが、私はタイトルに混乱していました。私はあなたの質問をより慎重に再レッドし、私はそれが重複であると誤解されたと思う。 –