Node.js“需要”function和参数
当我做:
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
。
我试图通过执行debugging:
params = {} params.app = app params.param2 = "test" lib = require("lib.js")(params)
但在lib.js,当我尝试JSON.stringify
我得到这个错误:
"DEBUG: TypeError: Converting circular structure to JSON"
当你调用lib = require("lib.js")(params)
你实际上调用lib.js
与一个参数包含两个属性名称app
和param2
你要么
// 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) { }
你可能有一个未定义的值,你试图通过。
举个例子, 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}
所以,我首先检查你的对象是否被正确定义(当你传入时拼写正确),然后检查你没有语法错误。