我试图在需求调用后将整个模块拉入另一个文件的当前范围。将整个模块拉入当前范围Node.js
举例来说,如果我的模块如下所示:
exports.chai = require "chai"
exports.mocha = require "mocha"
exports.Q = require "q"
我怎样才能再访问个人变量,如它们在当前文件的全局变量?所以,而不是像requireVar.chai做什么,我只能键入柴?
感谢您的任何意见
我试图在需求调用后将整个模块拉入另一个文件的当前范围。将整个模块拉入当前范围Node.js
举例来说,如果我的模块如下所示:
exports.chai = require "chai"
exports.mocha = require "mocha"
exports.Q = require "q"
我怎样才能再访问个人变量,如它们在当前文件的全局变量?所以,而不是像requireVar.chai做什么,我只能键入柴?
感谢您的任何意见
使用CoffeeScript的,我建议你使用destructuring assignment功能:
{chai, mocha, Q} = require 'some_module'
// use chai, mocha and Q for good stuff
你就不能这样做:
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();
如果你真的,真的要做到这一点,我想你可以使用with
:
with (require('yourMod')) {
// use chai, mocha etc.
}
请注意,没有人喜欢with
但特别ly Douglas Crockford。实际上使用requireVar.chai
是好;它消除了中的任何歧义,其中chai
来源于此,并且易于理解代码/模块的结构。
如果您觉得无聊,打字requireVar
,请将其缩短; a.chai
。
是啊,这就是我最终使用。它看起来是最干净的,希望有一条我可以用来拉动这些全局变量的单线,但是哦... – JonMorehouse 2013-02-11 15:05:37