これを使用してモジュールを作成できるため、nodejs モジュールのエクスポート オブジェクトに精通している必要があります。例: (これがrocker.jsファイルであると仮定します)
exports .name = function() {
console.log('私の名前はレミー・キルミスターです');
引用した別のファイル内
var Rocker = require('./rocker. js');
rocker.name(); // '私の名前はレミー・キルミスターです'
では、Module.exports とは何でしょうか?それは合法ですか?
実際、Module.exports は実際のインターフェイスであり、exports はその補助ツールにすぎません。最終的に呼び出しに返されるのは、exports ではなく Module.exports です。 エクスポートによって収集されたすべての属性とメソッドは Module.exports に割り当てられます。もちろん、これには前提があります。つまり、Module.exports 自体にはプロパティやメソッドがありません。 Module.exports にすでにいくつかのプロパティとメソッドがある場合、exports によって収集された情報は無視されます。
rocker.js を次のように変更します:
module.exports = 'ROCK IT!';
exports.name = function() {
console.log('私の名前はレミー キルミスター');
再度rocker.jsを参照して実行します
コードをコピー
コードは次のとおりです: varrocker = require( './rocker.js'); rocker.name(); // TypeError: オブジェクト ROCK IT!
見つかったエラー: オブジェクト "ROCK IT!" 名前メソッドがありません
ロッカー モジュールは、エクスポートによって収集された名前メソッドを無視し、文字列 "ROCK IT!" を返します。したがって、モジュールは必ずしも「インスタンス化されたオブジェクト」を返す必要はないということになります。モジュールには、ブール値、数値、日付、JSON、文字列、関数、配列などの正当な JavaScript オブジェクトを使用できます。
モジュールには、任意の値を設定できます。プロパティとメソッドを Module.exports に明示的に設定しない場合、モジュールは Module.exports に設定されたプロパティをエクスポートします。
次の例では、モジュールはクラスです:
コードをコピーします
コードは次のとおりです。 module.exports = function(name, age) { this.name = 名前;
this.age = 年齢;
this.about = function() 🎜>console.log(this.name ' is ' this.age ' years old');
;
コードをコピーします
コードは次のとおりです:
コードをコピー
コードは次のとおりです:
module.exports = [ 'レミー キルミスター'、'オジー オズボーン'、'ロニー ジェームス ディオ'、'スティーブン タイラー'、'ミック ジャガー']; 次のように適用できます:
コードをコピーします
コードは次のとおりです。
コードをコピー
コードは次のとおりです: