You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 04:51:18