在JavaScript模块中无法访问常量JSON对象的问题排查
无法正确访问JavaScript模块中的table属性
模块代码(constants.js)
const coreObjects = { activity: { objectName: 'activity', table: 'activities', pk: 'activity_id', recordTypeID: 'A' } } export { coreObjects }
报错的引用代码
let constants = await import('./constants.js'); let actvityTable = constants.coreObjects.activity.table;
错误信息
TypeError: Cannot read properties of undefined (reading 'activity')
无报错但无法获取字段的代码
let actvityTable = constants.coreObjects
解决方案
方案1:解构获取命名导出的成员
动态import返回的是包含所有导出成员的模块对象,直接解构出coreObjects可以避免层级访问的潜在问题:
const { coreObjects } = await import('./constants.js'); const activityTable = coreObjects.activity.table;
方案2:检查拼写与模块路径
确保:
- 模块路径
./constants.js正确,和当前脚本文件的相对位置匹配 - 变量名拼写无误(比如
coreObjects、activity不要写错)
方案3:改用默认导出(可选)
如果愿意调整模块的导出方式,改为默认导出后可以更简洁地引用:
修改constants.js:
const coreObjects = { activity: { objectName: 'activity', table: 'activities', pk: 'activity_id', recordTypeID: 'A' } } export default coreObjects
引用时:
const coreObjects = await import('./constants.js'); const activityTable = coreObjects.default.activity.table; // 或者解构默认导出 const { default: coreObjects } = await import('./constants.js'); const activityTable = coreObjects.activity.table;
内容的提问来源于stack exchange,提问作者Matt Myers
相关产品推荐
相关产品推荐

