2017-07-26 46 views
1

我創建使用具有角nw.js框架的桌面應用程序。在我的控制器,服務等等。我經常使用Node.js模塊是這樣的:很好的做法,使用全局對象的角度

module.exports = function(ngModule) { 
    ngModule.service('User', ['$q', function ($q) { 
     var self = this; 
     var fs = require('fs'); 
     var path = require('path'); 
     var gui = require('nw.gui'); 
    }]); 
}; 

這是一個好的做法呢?或者,也許更好的創建一些服務或將模塊$ rootScope

回答

2

通常require,不可以保持服務構造函數內(除非它們是有條件的):

var fs = require('fs'); 
var path = require('path'); 
var gui = require('nw.gui'); 

ngModule.service('User', ['$q', function ($q) { 
    ... 
}]); 

上面的代碼將需要使用包像proxyquire嘲笑節點的模塊和在隔離測試服務。

DI應該引入額外的靈活性和可測試性的應用程序。具有獨立的模塊,其可以容易地存根的依賴關係是處理這個一般優選方式:

angular.module('node', []) 
.constant('gui', require('nw.gui')) 
... 

... 

angular.module('app', ['node']) 
.service('User', function ($q, gui, ...) { 
    ... 
}); 
相關問題