【发布时间】:2018-09-05 03:33:36
【问题描述】:
我正在寻找通过 ID 从 0 递增的 JSON 模式 faker js 生成数据的方法。
当我尝试在架构中使用 autoIncrement 参数时,我得到了有效值,但是这个自动增量是从随机数开始的。
这个包可以做到吗?
【问题讨论】:
我正在寻找通过 ID 从 0 递增的 JSON 模式 faker js 生成数据的方法。
当我尝试在架构中使用 autoIncrement 参数时,我得到了有效值,但是这个自动增量是从随机数开始的。
这个包可以做到吗?
【问题讨论】:
对于任何寻找更新答案的人,您现在可以在架构中设置一个“initialOffset”值作为起始值
【讨论】:
我没有找到该问题的官方解决方案,但这里有一个解决方法。
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 的数字非常大,那么自动递增将不再是“安全的”。
【讨论】: