2012-03-16 45 views
0

如果CommonJS模塊只需要返回一個函數,是不是直接將其指定給exports對象是一種好的做法? (相對於作爲出口的唯一的屬性進行指定對象)可以在CommonJS中使出口對象成爲函數嗎?

例如(假想log.js模塊):

module.exports = function(text){console.log(text);} 

用法:

var log = require('./log'); 
log('something'); 

回答

2

是。我經常自己使用這種做法。這也是一個不錯的選擇與揭示模塊模式,例如:

module.exports = function(db) { 
    return { 
     get: function(id, callback) { 
      // db.get(...) 
     }, 
     save: function(obj, callback) { 
      // db.save(...) 
     } 
    } 
}; 

它也廣泛用於連接(例如csrf module)使用,並表達(如route)。

相關問題