【问题标题】:Node.js uncaught exception typeError: cannot set preoprty '' of undefinedNode.js 未捕获异常 typeError: cannot set preoprty '' of undefined
【发布时间】:2025-11-29 04:15:01
【问题描述】:

我正在尝试更新模型中的数组。但是会抛出上述错误。不知道为什么。在尝试更新之前定义了usagePlan。

customer.usagePlan.toolUsage.tools.push(aNewToolObject);
customer.updateAttribute('usagePlan',customer.usagePlan,function(err,something)    {
    //exception is thrown here
});

错误:

uncaught Exceptions: TypeError: Cannot set property 'usagePlan' of undefined

更新属性的文档可以在这里找到:

http://apidocs.strongloop.com/loopback/#persistedmodel-prototype-updateattribute

【问题讨论】:

  • 可以分享updateAttribute函数的代码吗?
  • 您应该提供比这更多的代码 - 此代码不能按原样运行。见*.com/help/mcve
  • 因此,该错误使customer.usagePlan 似乎未定义。根据updateAttribute 名称,您似乎应该传递customer 对象而不是customer.usagePlan
  • @jfriend00 如果我将 customer.usagePlan 分配给变量,则错误保持不变。
  • @hownowbrowncow 你是如何构造customer的?也许它没有实现 PersistedModel

标签: javascript node.js exception


【解决方案1】:

updateAttribute 的代码是什么?

你确定第二个参数是属性本身,而不是对象,例如:

customer.updateAttribute('usagePlan',customer,function(err,something)    

【讨论】:

  • 是的,如果我将 customer.usagePlan 分配给一个变量并将其添加到函数中,则错误保持不变。
  • 根据您尝试获取未定义对象的usagePlan属性的异常。请分享updateAttribute函数的代码。
  • 这毫无意义。 usagePlan 定义良好,并且在调用此函数之前具有贯穿始终的内容。 updateAttribute 所做的就是将此属性的更改存储到 DB。
  • 显然我没有在此框架中的正确位置定义“usagePlan”属性,因此数据库无法识别该对象。我应该删除这个问题吗?
最近更新 更多