首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node.js "require“函数和参数

Node.js "require“函数和参数
EN

Stack Overflow用户
提问于 2011-09-10 05:50:50
回答 2查看 93K关注 0票数 82

当我这样做的时候:

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"
EN

回答 2

Stack Overflow用户

发布于 2011-09-10 05:59:53

在调用lib = require("lib.js")(params)

实际上,您正在使用一个包含两个属性appparam2的参数调用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) { }
票数 124
EN

Stack Overflow用户

发布于 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}

因此,我首先要检查对象是否定义正确(传入时是否拼写正确),然后检查是否没有语法错误。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7367850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档