我正在使用nodeJS,通常,我会执行模块声明,并且要求:
controller.js
exports.getApp = {value : "value", funct: function(){}}
OR
module.exports = {value : "value", funct: function(){}}
app.js
var controller = require('./controller')
这很有效。
现在我想在客户端使用CommonJS,所以在将JS提供给客户端之前,我开始使用grunt-browserify来处理我的需求。
目前我在客户端JS上这样做:
controller.js
controller = {value : "value", funct: function(){}}
module.exports = controller;
app.js
var controller = require('./controller');
这也有效,但前提是控制器是一个全局变量。
如果我在controller.js中声明“controller”之前使用了关键字“var”,那么“控制器”将在app.js中未定义
为什么?导出对象不应该在导出对象中可用,它是否来自模块内的本地或全局变量?
另一个问题:如果模块B需要模块A ,我不能要求模块A中的模块B.模块A中模块B的要求导致空对象。也许我没有正确地做到这一点。