【问题标题】:Mongoose - Getting Uncaught RangeError when validating client-side documentMongoose - 验证客户端文档时出现未捕获的 RangeError
【发布时间】:2023-04-03 12:40:01
【问题描述】:

我正在尝试使用 Mongoose 进行客户端模型验证。我有以下代码(这是一个 React 组件):

import templateSchema from '../../../shared/schemas/templateSchema.js';
var mongoose = require('mongoose');
var TemplateDocSchema = new mongoose.Schema(templateSchema);

class TemplateEditInfo extends Component {
    ...
    saveStage(e) {
        var doc = new mongoose.Document({}, TemplateDocSchema);
        doc.validate(function(error) {

        });
    }
    ...
}

doc.validate 函数在浏览器(最新的 Chrome)中抛出以下错误:

未捕获的 RangeError:超过最大调用堆栈大小 Object.exports.deprecate (eval at (app.js:866), :65:29) at Promise.eval (eval at (app.js:866), :69:22) at Promise.eval (eval at (app.js:866), :69:41) 在 Promise.eval (eval at (app.js:866), :69:41) 在 Promise.eval (eval at (app.js:866), :69:41) 在 Promise.eval (eval 在 (app.js:866), :69:41) 在 Promise.eval (eval at (app.js:866), :69:41) 在 Promise.eval (eval at (app.js:866), :69:41) 在 Promise.eval (eval at (app.js:866), :69:41) 在 Promise.eval (eval at (app.js:866), :69:41)

架构如下:

const templateSchema = {
    ref: {type: Number}
};
export default templateSchema;

【问题讨论】:

    标签: reactjs mongoose


    【解决方案1】:

    我需要安装一个 Promise 包来解决这个问题:

    var mongoose = require('mongoose');
    var bluebird = require('bluebird');
    mongoose.Promise = bluebird;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 2018-01-22
      • 1970-01-01
      • 1970-01-01
      • 2012-07-11
      • 2015-09-30
      • 1970-01-01
      相关资源
      最近更新 更多