有一个非常简单的问题,我无法找到关于在Node js中从模块导出对象的答案,更具体地说是访问对象属性。
这是我导出的对象:
exports.caravan = {
month: "july"
};
这是我的主要模块:
var caravan = require("./caravan")
console.log(caravan.month);
console.log(caravan.caravan.month);
为什么我无法直接使用caravan.month访问这些属性,但必须写caravan.caravan.month?
答案 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);