让mongoose中间件只调用一次

时间:2015-09-27 14:01:17

标签: node.js mongodb mongoose

我只是在第一次创建模型时尝试运行一些命令。它根据另一个字段中给出的大小创建一个空字符串数组。例如,如果我尝试保存它:

{
    size: 12,
    strings: null
}

我真的应该保存:

{
    size: 12,
    strings: ['','','', ... ]
}

我尝试使用init这样的钩子:

schema.pre('init', function(next) {
    var strings = [];
    for (var i = 0; i < this.size; i++) {
        strings[i] = '';
    }
    this.strings = strings;
    next();
}

但是,我收到一条错误消息,指出size字段不存在 - 让我相信init挂钩无法访问文档中的字段被创造。

如何仅使用该模型执行此操作?在保存对象之前,我宁愿不将此代码放在控制器中。

0 个答案:

没有答案