1

我正在寻找通过 ID 从 0 递增的 JSON 模式 faker js 生成数据的方法。当我尝试autoIncrement在模式中使用参数时,我得到了有效值,但是这种自动递增是从随机数开始的。这个包可以做到吗?

4

2 回答 2

0

我没有找到该问题的官方解决方案,但这里有一个解决方法。

json-schema-faker的用于生成自增整数的源代码(node_modules\json-schema-faker\lib\index.js)解释了为什么它从一个随机整数开始:

// safe auto-increment values
container.define('autoIncrement', function (value, schema) {
    if (!this.offset) {
        var min = schema.minimum || 1;
        var max = min + env.MAX_NUMBER;
        this.offset = random$1.number(min, max);
    }
    if (value === true) {
        return this.offset++;
    }
    return schema;
});

它是if (!this.offset)设置初始值的分支。为了实现我们的目标,我们可以像这样修改分支内的代码:

if (!this.offset) {
    var min = schema.minimum || 1;
    // var max = min + env.MAX_NUMBER;
    // this.offset = random$1.number(min, max);
    this.offset = min;
}

minimum在模式中指定时,其值将用作起点。否则,1改为使用。

还值得注意的是,如果您指定minimum一个非常大的数字,自动增量将不再是“安全的”。

于 2018-04-02T12:34:33.110 回答
0

对于任何寻找更当前答案的人,您现在可以在模式中设置一个“initialOffset”值作为起始值

于 2019-03-29T00:36:29.303 回答