节点 js 对象导出

Node js object exports

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

这是我导出的对象:

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

这是我的主要模块:

var caravan = require("./caravan")

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

为什么我不能直接使用 caravan.month 访问属性,而必须编写 caravan。caravan.month?

如果您想通过 caravan.month 到达,则:

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

考虑使用 require,您可以访问模块的 module.exports 对象(别名为 exports,但使用 [=17= 有一些微妙之处] 使得使用 module.exports 成为更好的选择)。

获取您的代码:

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

与此类似:

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

与此类似:

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

如果我们类似地"translate" require,通过用module.exports的内容替换它,你的代码变成这样:

var caravan = {
  caravan : { month: "july" }
};

这就解释了为什么需要使用 caravan.caravan.month

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

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

如果要获取对象,使用

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

然后像这样获取:

var caravan = require("./caravan")

您还可以查看:

console.log(caravan.caravan.month);