猫鼬超过了Nodejs的最大调用堆栈大小

Posted

技术标签:

【中文标题】猫鼬超过了Nodejs的最大调用堆栈大小【英文标题】:Nodejs Maximum call stack size exceeded with mongoose 【发布时间】:2016-04-22 23:22:04 【问题描述】:

我正在尝试调用集合中的所有元素,它给出了超出最大调用堆栈大小的错误。代码如下。

router.get('/users',counsellorValidate, function(req, res, next) 
    users.find(,function(err,user) 
            res.render('counsellor/counsellorHome','userData':user,'user':req.session.user);
    );
);

数据库模式如下。

var userSchema = new Schema(
    first_name: 
        type: String, 
        required: true 
    ,
    last_name: 
        type: String, 
        required: true 
    ,
    email: 
        type: String, 
        required: true,
        unique: true  
    ,
    altEmail: 
        type: String, 
    ,
    password: 
        type: String, 
        required: true,
    ,
    phone: 
        mobile:Number,
        isd:Number,
        std:Number,
        landline:Number
    ,
    dob:Date,
    address:
        line1:String,
        line2:String,
        city:String,
        state:String,
        country:String,
        pin:String
    ,
    fb:String,
    twitter:String,
    linkedIn:String,
    blog:String,
    skype:String,
    maritial:String,
    gender:String,
    profile:
        name:String,
        original_name:String
    ,
    summary:String,
    resume:
        name:String,
        original_name:String
    ,
    education: [
        school_name:String,
        city:String,
        state:String,
        board:String,
        marks:String,
        year:String,
        medium:String,
        specialization:String,
        mode :String
    ],
    scores : 
        gre:Number,
        gmat:Number,
        sat:Number,
        ielts:Number,
        toefl:Number,
        pte:Number
    ,
    _email:
        type:Boolean,
        required:true,
        default:false
    ,
    _approved:
        type:Boolean,
        required:true,
        default:false
    ,
);

我尝试增加堆栈大小,但它给出了分段错误代码转储错误。

【问题讨论】:

删除了答案,因为它并不真正相关。但是,由于您达到了最大调用堆栈大小,我认为您正在循环中调用某个函数,而该函数并未在您期望的时候结束。这发生在我身上,问题最终是没有在某处调用的回调。我认为您可能需要发布更多代码才能将其置于上下文中。 我设法解决了这个问题。问题出在痛饮上。 swig 抛出了这个错误,因为有一个未初始化的变量。 很高兴听到你把它整理好了! 【参考方案1】:

我设法解决了这个问题。问题出在痛饮上。 swig 抛出了这个错误,因为有一个未初始化的变量。

【讨论】:

以上是关于猫鼬超过了Nodejs的最大调用堆栈大小的主要内容,如果未能解决你的问题,请参考以下文章

猫鼬:UnhandledPromiseRejectionWarning:RangeError:超出最大调用堆栈大小

mongoose-nodejs 导致超出最大调用堆栈大小,在 mongoose save()

Docker 容器的最大调用堆栈大小超过了 npm install

Vue v3中的VideoJS播放列表超过最大调用堆栈大小错误

淘汰赛未捕获 RangeError:超过最大调用堆栈大小

RangeError:超过最大调用堆栈大小 React Native