节点js对象导出

时间:2016-07-09 16:14:56

标签: javascript node.js node-modules

有一个非常简单的问题,我无法找到关于在Node js中从模块导出对象的答案,更具体地说是访问对象属性。

这是我导出的对象:

exports.caravan = {
    month: "july"
};

这是我的主要模块:

var caravan = require("./caravan")

console.log(caravan.month);
console.log(caravan.caravan.month);

为什么我无法直接使用caravan.month访问这些属性,但必须写caravan.caravan.month?

3 个答案:

答案 0 :(得分:28)

考虑使用module.exports,您可以访问模块的exports对象(别名为exports,但使用module.exports有一些细微之处使用exports.caravan = { month: "july" }; 作为更好的选择。

拿你的代码:

module.exports.caravan = { month: "july" };

与此类似:

module.exports = {
  caravan : { month: "july" }
};

与此类似:

require

如果我们同样"翻译" module.exports,用var caravan = { caravan : { month: "july" } }; 的内容替换它,您的代码就变成了这样:

caravan.caravan.month

这解释了为什么需要使用module.exports = { month: "july" };

如果要删除额外级别的间接,可以在模块中使用它:

Statistics

答案 1 :(得分:6)

如果您想通过caravan.month,那么:

module.exports = {
    month: "july"
};

答案 2 :(得分:2)

如果要获取对象,请使用

module.exports = {
  caravan = {
       month: "july"
  }
};

然后像这样:

var caravan = require("./caravan")

您也可以查看:

console.log(caravan.caravan.month);