当我这样做的时候:
lib = require('lib.js')(app)
app
真的被传入了吗?
在lib.js中:
exports = module.exports = function(app){}
似乎不是,因为当我尝试做更多的事情而不仅仅是(app)
时:
lib = require('lib.js')(app, param2)
和:
exports = module.exports = function(app, param2){}
我不明白params2
。
我尝试通过执行以下操作来进行调试:
params = {}
params.app = app
params.param2 = "test"
lib = require("lib.js")(params)
但是在lib.js中,当我尝试JSON.stringify
时,我得到了这个错误:
"DEBUG: TypeError: Converting circular structure to JSON"
发布于 2011-09-10 05:59:53
在调用lib = require("lib.js")(params)
时
实际上,您正在使用一个包含两个属性app
和param2
的参数调用lib.js
你要么想要
// somefile
require("lib.js")(params);
// lib.js
module.exports = function(options) {
var app = options.app;
var param2 = options.param2;
};
或
// somefile
require("lib.js")(app, param2)
// lib.js
module.exports = function(app, param2) { }
发布于 2011-09-10 06:00:22
您可能有一个未定义的值,您正在尝试传递。
以requires.js
为例
module.exports = exports = function() {
console.log('arguments: %j\n', arguments);
};
当你正确地调用它时,它就会工作:
node
> var requires = require('./requires')(0,1,2,3,4,5);
arguments: {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5}
如果出现语法错误,它将失败:
> var requires = require('./requires')(0,);
... var requires = require('./requires')(0,2);
...
如果你有一个未定义的对象,它就不能工作:
> var requires = require('./requires')(0, undefined);
arguments: {"0":0}
因此,我首先要检查对象是否定义正确(传入时是否拼写正确),然后检查是否没有语法错误。
https://stackoverflow.com/questions/7367850
复制相似问题