2013-02-09 52 views
1

我試圖在需求調用後將整個模塊拉入另一個文件的當前範圍。將整個模塊拉入當前範圍Node.js

舉例來說,如果我的模塊如下所示:

exports.chai = require "chai" 
exports.mocha = require "mocha" 
exports.Q = require "q" 

我怎樣才能再訪問個人變量,如它們在當前文件的全局變量?所以,而不是像requireVar.chai做什麼,我只能鍵入柴?

感謝您的任何意見

回答

4

使用CoffeeScript的,我建議你使用destructuring assignment功能:

{chai, mocha, Q} = require 'some_module' 

// use chai, mocha and Q for good stuff 
+0

是啊,這就是我最終使用。它看起來是最乾淨的,希望有一條我可以用來拉動這些全局變量的單線,但是哦... – JonMorehouse 2013-02-11 15:05:37

1

你就不能這樣做:

var requireVar = require('yourmod') 
    , chai = requireVar.chai 
    , mocha = requireVar.mocha 
    , Q = requireVar.Q 
    ; 

//then use chai, mocha and Q afterwards 
chai.hoo(); 
mocha.mon(); 
Q.tip(); 
1

如果你真的真的要做到這一點,我想你可以使用with

with (require('yourMod')) { 
    // use chai, mocha etc. 
} 

請注意,沒有人喜歡with但特別ly Douglas Crockford。實際上使用requireVar.chai;它消除了中的任何歧義,其中chai來源於此,並且易於理解代碼/模塊的結構。

如果您覺得無聊,打字requireVar,請將其縮短; a.chai