使用 mswjs/data 模拟工厂中的项目时如何在创建时呈现当前索引?
How to render current index on creation when mocking items in a factory using mswjs/data?
我正在使用 @mswjs/data
生成模拟数据库,并且我有一个 属性 order
,它是所有条目的 0 和 length - 1
之间的数字。我想在 属性 中呈现当前索引。我正在查看 GitHub 存储库、Google 和 Whosebug,但找不到。
那么如何在模拟条目时呈现当前索引?
只对创建有影响,之后 属性 会随着项目的移动而发生变异。
否则,它也可以只是一个介于 0 和条目的最后一个索引之间的随机数,而不是当前索引,但它必须是唯一的并且不能在其他条目之间共享。
答案比我预期的要简单。
const countUp = (() => {
let id = 0;
return () => id++;
})();
然后在工厂
const myEntityFactory = () => {
return {
order: countUp,
}
};
并在创建新实体时进行计数。
查询实体时考虑使用 sort
选项对前端的输出进行排序。
const db = factory({
user: {
id: primaryKey(Number)
}
})
db.user.findMany({
// Sort by the "id" property on the "user".
sort: {
id: 'asc'
}
})
The sort criterion doesn't have to be the primary key, it can be any key. Yet since order
seems to be a vital part of your model, I say it should be described in it (you can even use a designated property order
, that'll also work.
虽然它的行为与创建实体时的默认排序方式类似,但您不再受限于库的内部实现细节,而是明确定义返回的实体必须如何排序每个操作的基础。
我正在使用 @mswjs/data
生成模拟数据库,并且我有一个 属性 order
,它是所有条目的 0 和 length - 1
之间的数字。我想在 属性 中呈现当前索引。我正在查看 GitHub 存储库、Google 和 Whosebug,但找不到。
那么如何在模拟条目时呈现当前索引?
只对创建有影响,之后 属性 会随着项目的移动而发生变异。
否则,它也可以只是一个介于 0 和条目的最后一个索引之间的随机数,而不是当前索引,但它必须是唯一的并且不能在其他条目之间共享。
答案比我预期的要简单。
const countUp = (() => {
let id = 0;
return () => id++;
})();
然后在工厂
const myEntityFactory = () => {
return {
order: countUp,
}
};
并在创建新实体时进行计数。
查询实体时考虑使用 sort
选项对前端的输出进行排序。
const db = factory({
user: {
id: primaryKey(Number)
}
})
db.user.findMany({
// Sort by the "id" property on the "user".
sort: {
id: 'asc'
}
})
The sort criterion doesn't have to be the primary key, it can be any key. Yet since
order
seems to be a vital part of your model, I say it should be described in it (you can even use a designated propertyorder
, that'll also work.
虽然它的行为与创建实体时的默认排序方式类似,但您不再受限于库的内部实现细节,而是明确定义返回的实体必须如何排序每个操作的基础。