【问题标题】:NODEJS - RangeError: Maximum call stack size exceededNODEJS - RangeError:超出最大调用堆栈大小
【发布时间】:2019-07-05 19:04:09
【问题描述】:

我正在处理一个庞大的项目,许多函数相互调用

我遇到了这个错误:RangeError: Maximum call stack size exceeded

完整的错误:

/Users/mohsen/Desktop/GP/Source/node_modules/lodash.get/index.js:561
返回 reIsPlainProp.test(值) || !reIsDeepProp.test(值) ||

RangeError: 超出最大调用堆栈大小 在 RegExp.test () 在 isKey (/Users/mohsen/Desktop/GP/Source/node_modules/lodash.get/index.js:561:24) 在 baseGet (/Users/mohsen/Desktop/GP/Source/node_modules/lodash.get/index.js:458:10) 在获取(/Users/mohsen/Desktop/GP/Source/node_modules/lodash.get/index.js:927:45) 在 isBsonType (/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:150:10) 在克隆(/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:210:7) 在 cloneObject (/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:270:11) 在克隆(/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:196:16) 在 cloneObject (/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:270:11) 在克隆(/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:196:16) 在 cloneObject (/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:270:11) 在克隆(/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:196:16) 在 cloneObject (/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:270:11) 在克隆(/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:196:16) 在 cloneObject (/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:270:11) 在克隆(/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:196:16) 在 cloneObject (/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:270:11) 在克隆(/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:196:16) 在 cloneObject (/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:270:11) 在克隆(/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:196:16) 在 cloneObject (/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:270:11) 在克隆(/Users/mohsen/Desktop/GP/Source/node_modules/mongoose/lib/utils.js:196:16)

在尝试将新文档保存到我的 mongo DB 时恰好触发了此错误

调用下面的函数

saveOrder({data});

函数实现

function saveOrder(data)
{
var order = new Order(data);
order.save();
}

任何建议 - 为什么我会遇到这个问题??

--- 更新 ---

评论 order.save();解决问题

现在这条线的问题

order.save();

【问题讨论】:

  • 你的Order 架构是什么?你在那里定义了一些方法吗?喜欢pre-save
  • @molamk 架构 {X : Array} 中的此属性可能存在问题 - 调用它时 {X: [ { id: 'ID1', function1: [Function], function2: [Function ], id: [Circular] }, { id: 'ID2', function1: [Function], function2: [Function], id2: [Circular] } ]}
  • 您能否更新问题以包含架构?谢谢
  • {data} 将创建一个类似 {'data': data} 的对象,并且您的架构必须以这种方式定义。即{数据:}。我认为这是您出错的地方,因此您必须调用 saveOrder(data) 之类的方法,但是,共享您的架构和数据对象。

标签: node.js mongoose lodash


【解决方案1】:

我解决了,如果有人遇到同样的问题,这个答案

问题在于猫鼬模式支持的这两种类型之间

  • 混合
  • 数组

我在架构中使用了数组

{ X : 数组 }

但是我用一组复杂的对象插入了它 在这种情况下,我应该使用 Mixed 而不是 Array

了解更多:https://mongoosejs.com/docs/schematypes.html

【讨论】:

    猜你喜欢
    • 2014-02-07
    • 1970-01-01
    • 2013-08-18
    • 2015-06-28
    • 2018-02-06
    • 1970-01-01
    • 2021-05-30
    相关资源
    最近更新 更多