2017-01-07 18 views
0

私は現在、プロジェクトのサーバー側としてNodeJSを使用しており、内部ヘルパー関数用に「モジュール」を作成しています。NodeJS module.exports構造体の説明

以下は、私が現在どのように 'ヘルパー'ファイルを設定しているかの例です。

# Structure 1 
var express = require('express'); 
var helpers = { 
    isNullOrEmpty: function(s) 
    { 
     return s == "" || s == null || s.length == 0; 
    }, 
    formatDate: function(s) 
    { 
     var dateArr = s.split('/'); 
     if (dateArr.length == 3) 
     { 
      return dateArr[1] + '-' + dateArr[0] + '-' + dateArr[2]; 
     } 
     else 
     { 
      return null; 
     } 
    } 
} 

module.exports = helpers; 

あなたは、上記のようなそのセットアップ「オブジェクト」を参照することができ、すべてのプロジェクト内の正常に動作し、それを何の問題もなかったが、私は人々が自分のモジュールの作成例を見ると、彼らが使用するよう以下のような構造です。

# Structure 2 
var express = require('express'); 

function helpers(){}; 

helpers.protoype.isNullOrEmpty = function(s){ 
    return s == "" || s == null || s.length == 0; 
} 

helpers.prototype.formatDate = function(s){ 
    var dateArr = s.split('/'); 
    if (dateArr.length == 3){ 
     return dateArr[1] + '-' + dateArr[0] + '-' + dateArr[2]; 
    } 
    else { 
     return null; 
    } 
    } 
} 

module.exports = helpers; 

これらのファイルの構造を正しく設定する方法はありますか?これらのモジュールを書式設定する利点/欠点はありますか?

「ベストプラクティス」またはフィードバックをいただければ幸いです。

答えて

0

これはjavascriptのoopの基本的な意味から来ています。この場合は object.prototypeを使用すると、親オブジェクトから継承し、すべての関数がjsの継承の子オブジェクトで使用できる他のオブジェクトを定義できます。

function helpers(){}; 

helpers.protoype.isNullOrEmpty = function(s){ 
    return s == "" || s == null || s.length == 0; 
} 

helpers.prototype.formatDate = function(s){ 
    var dateArr = s.split('/'); 
    if (dateArr.length == 3){ 
    return dateArr[1] + '-' + dateArr[0] + '-' + dateArr[2]; 
} 
    else { 
    return null; 
} 
} 
} 
var secondObject=new Object() 
secondObject.prototype=Object.create(helpers.prototype) 
+0

だけでなく、私はあなたがこのrefrenceを見ることをお勧めしますhttps://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype:あなたはこのように使用することができます – farhadamjady