Node.js跨文件导出导入Map后如何获取指定key对应的value?
问题原因
报错指向Something.Words为undefined,本质是跨文件导出的赋值逻辑错误,常见触发场景有两种:
- 导出顺序错误:在Map实例初始化完成前就完成了导出赋值
- 导出类型错误:误将
Words导出为函数而非Map实例本身
解决方案
场景1:导出顺序错误
调整File1的代码顺序,保证Map初始化完成后再执行导出操作,正确写法如下:
// File1.js 完整正确代码 let queue = new Map() queue.set("the key", "the value") // 导出操作必须放在Map实例初始化之后 module.exports.Words = queue
场景2:导出类型为函数
如果你的导出逻辑原本设计为返回Map的函数(比如原导出代码写为module.exports.Words = () => queue),调用时需要先执行函数拿到Map实例再调用方法:
// 第二个文件调用调整 let Something = require("../File1") value = Something.Words().get("the key") console.log(value)
调试验证
你可以在调用get前新增一行打印,快速定位问题:
console.log(typeof Something.Words, Something.Words)
- 如果输出为
undefined:说明导出顺序错误,回到场景1调整代码顺序 - 如果输出为
function:说明导出类型为函数,回到场景2调整调用方式
内容的提问来源于stack exchange,提问作者Zen
相关产品推荐
相关产品推荐

