JavaScript技术问题:如何访问导出对象的字段?
解决方法:访问嵌套导出对象中的字段
从你的控制台输出就能看出问题所在啦——你导出的对象被多嵌套了一层!咱们来一步步拆解解决:
在constants.js里,你把内部的constants对象挂载到了module.exports的constants属性上,所以当你require这个文件时,拿到的是一个外层容器对象,它的constants属性才是你真正需要的那个包含字段的对象。
下面给你两种可行的解决办法:
方法一:修改导出方式(推荐)
直接把内部的constants对象作为模块的导出内容,这样require之后就能直接访问字段,代码更简洁:
修改constants.js的最后一行:
// 原来的写法 // module.exports.constants = constants; // 修改后的写法 module.exports = constants;
然后在另一个文件里,就可以直接访问字段:
var constants = require('./../constants'); console.log(constants.conversationUsername); // 输出 'user1'
方法二:保持导出不变,调整访问路径
如果不想改动constants.js的代码,那访问的时候需要多写一层constants来穿透嵌套:
var constants = require('./../constants'); // 多一层嵌套访问 console.log(constants.constants.conversationUsername); // 输出 'user1' // 或者用解构赋值让代码更清晰 const { constants: config } = require('./../constants'); console.log(config.conversationPassword); // 输出 'pass1'
这样就能轻松拿到你想要的字段啦!
内容的提问来源于stack exchange,提问作者Emy eminescu
相关产品推荐
相关产品推荐

