节点js对象导出

Mus*_*ons 5 javascript node.js node-modules

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

这是我导出的对象:

exports.caravan = {
    month: "july"
};
Run Code Online (Sandbox Code Playgroud)

这是我的主要模块:

var caravan = require("./caravan")

console.log(caravan.month);
console.log(caravan.caravan.month);
Run Code Online (Sandbox Code Playgroud)

为什么我不能直接用caravan.month访问这些属性但是必须写caravan.caravan.month?

rob*_*lep 30

考虑到这一点require,您可以访问module.exports模块的对象(有别名exports,但exports使用module.exports更好的选择有一些细微之处).

拿你的代码:

exports.caravan = { month: "july" };
Run Code Online (Sandbox Code Playgroud)

这与此类似:

module.exports.caravan = { month: "july" };
Run Code Online (Sandbox Code Playgroud)

这与此类似:

module.exports = {
  caravan : { month: "july" }
};
Run Code Online (Sandbox Code Playgroud)

如果我们同样"翻译"它require,通过用它的内容替换它module.exports,你的代码变为:

var caravan = {
  caravan : { month: "july" }
};
Run Code Online (Sandbox Code Playgroud)

这解释了您需要使用的原因caravan.caravan.month.

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

module.exports = {
  month: "july"
};
Run Code Online (Sandbox Code Playgroud)


Aru*_*osh 7

如果你想通过caravan.month那时:

module.exports = {
    month: "july"
};
Run Code Online (Sandbox Code Playgroud)