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

Apps Script运行addView报错:无法解构undefined的viewers属性

ScriptProperties 相关错误排查

问题现象

  • 运行addView函数时触发以下错误:

Error
TypeError: Cannot destructure property 'viewers' of 'undefined' as it is undefined.
addView @ Code.gs:11

  • onOpen和logEverything函数可正常执行,仅addView报错。
  • 已按指引完成"viewers"脚本属性的编辑操作。

当前代码

const PROP_SERVICE = PropertiesService.getScriptProperties();

const onOpen = () => {
  const email = Session.getActiveUser().getEmail(),
    date = new Date().toLocaleString(),
    viewers = JSON.parse(PROP_SERVICE.getProperty('viewers')),
    user = email.split('@')[0];
  addView({viewers, user, email, date});
};

const addView = ({viewers, user, email, date}) => {
  if (viewers[user]) {
    viewers[user].count++;
  } else {
    viewers[user] = { 
      count : 1, 
      visits : [],
      email
    };
  }
  viewers[user].visits.push(date);
  console.log(`Added view for ${user}`);
  saveView(viewers);
};

const saveView = viewers => {
  PROP_SERVICE.setProperty('viewers', JSON.stringify(viewers));
  console.log('view saved');
};

const logEverything = () => {
  const viewers = JSON.parse(PROP_SERVICE.getProperty('viewers'));

  for (user in viewers) {
    console.log(`User ${user} has visited ${viewers[user].count} time/s with email ${viewers[user].email}.`);
    console.log(viewers[user].visits);
  }
};

尝试过的无效操作

  • 在addView代码块中给"viewers"添加引号
  • 手动定义user变量或设置默认值

疑问

是否需要添加额外的脚本属性,或是在代码中为viewers添加定义?

内容的提问来源于stack exchange,提问作者A Adams

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 05:42:40