仅将一个变量传递给Node模块

时间:2011-12-23 16:42:13

标签: node.js

我有app.jsroutes.js。在app.js我需要routes.js。要运行routes.js,我只需要将单个变量app传递给它。有没有办法在不使用approutes.js的情况下将require传达给module.exports?我正在寻找像

这样的语法
require(module, arguments);

4 个答案:

答案 0 :(得分:1)

嗯,你的代码肯定包含在某个函数或类中?如果您有routes.js

中的课程
Routes = function(app) {}

然后你可以做

require('routes.js');
var routes = new Routes(app);
routes.map(...);

答案 1 :(得分:0)

与Xeon06的解决方案类似,如果routes.js导出一个函数,您通常可以将该应用作为常规参数传递,如下所示:require('routes')(app)

答案 2 :(得分:0)

在app.js中:

require('module')(arg1, arg2);

在module / index.js中:

module.exports = function(arg1, arg2) {
    // code here
}

答案 3 :(得分:0)

将require视为一个普通的JavaScript函数,它返回一个函数或一个对象,具体取决于你拥有的东西。

在你的情况下,require('module')将返回一个函数,然后用参数(arg1,arg2)等调用,例如:

require('module')(arg1, arg2);

您将在模块中使用以下代码结构:

module.exports = function(arg1, arg2) {
  // your code here
}