在Node.JS中,如何从单独的.js文件返回整个对象?

时间:2012-08-30 15:37:19

标签: javascript json node.js

我是Node.js的新手并试图弄清楚如何从单独的文件中请求一个对象(而不仅仅是请求一个函数),但是我尝试的所有内容 - exportsmodule-exports,等 - 失败了。

所以,例如,如果我有foo.js

    var methods = {
                   Foobar:{
                            getFoo: function(){return "foo!!";},
                            getBar: function(){return "bar!!";}
                   }
                  };
module.exports = methods;

现在我想调用来自foo.js的{​​{1}}对象中的函数:

index.js

我该怎么做?我尝试了var m = require('./foo'); function fooMain(){ return m.Foobar.getFoo(); }; exports的各种组合,但它们似乎只有在我调用不属于对象的离散函数时才有效。

1 个答案:

答案 0 :(得分:5)

您说您尝试了exports,但您的代码没有显示它。您希望从模块外部看到的任何内容都必须分配给module.exports(或以其他方式引用)module.exports。在您的情况下,您已经有了一个对象,您只需将其分配给var methods = { ... }; // You must export the methods explicitly module.exports = methods;

module.exports

module.exports.Foobar = {}; module.exports.Foobar.getFoo = function() { ... }; ... 不是魔术,它是一个普通的物体,你可以这样对待它。这意味着您可以直接将方法分配给它,如:

module.exports = function() { return "It's ALWAYS over 9000!!!!"; };

或者,正如您可能知道的那样,您可以使用函数替换它:

{{1}}

只有在导出后,您才能在其他模块中使用任何