Mongoose - 验证客户端文档时获取未捕获的RangeError

时间:2017-01-06 14:32:41

标签: reactjs mongoose

我正在尝试使用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)在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)在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;

1 个答案:

答案 0 :(得分:0)

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

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