Loopback使用序列号作为型号ID。我可以在服务器端使用自己的ID生成器吗?我该怎么做呢?
答案 0 :(得分:7)
可以将Loopback生成器(guid,uuid,...)指定为model definition file中id属性的默认函数。
示例使用guid:
{
"name": "ModelName",
"base": "PersistedModel",
"idInjection": false,
"properties": {
"id": {
"type": "string",
"id": true,
"defaultFn": "guid"
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}
据我所知,您无法指定自己的默认功能。请参阅related github issue。
如果您想要更高级的行为(例如您自己的生成器),您可以创建models/model-name.js
文件并扩展模型的构造函数。
答案 1 :(得分:4)
是的,您需要做一些事情:
在相应的model.json中设置"idInjection": false
以关闭自动ID注入
将您想要的属性添加到模型中,然后通过在model.json中的属性上设置"id": true
,或者选择在prop中的prop旁边的id,将其设置为id。作曲家
生成并注入id,可能是before save
(https://docs.strongloop.com/display/public/LB/Operation+hooks)上的操作挂钩,也可能是mixin(https://docs.strongloop.com/display/public/LB/Defining+mixins)
答案 2 :(得分:1)
如果使用Loopback 4,则这是用于在主键中生成UUID的设置。 在您的模型内部进行更改。
@property({
type: 'string',
id: true,
defaultFn: 'uuidv4',
}) id ?:字符串;
这是在表中生成唯一ID的方法。