Strongloop UUID
Strongloop UUID
这是我创建的模型的片段。我希望 id 属性 始终通过 uuid 默认函数自动生成。但是,即使添加到隐藏的 id 属性 也可以由用户决定是否将其传递给 post 创建方法。
除了使用方法钩子或操作钩子之外,要始终覆盖该值是否有另一种环回方法或标志(我也尝试过 foreId 属性)以确保该 ID 始终是一个 uuid即使用户提供了价值?如果不是,那么对于我来说,"defaultFn": "uuid" 完全没有意义,如果我总是覆盖它的话。
{
"name": "Account",
"base": "PersistedModel",
"strict": true,
"idInjection": false,
"options": {
"validateUpsert": true
},
"properties": {
"id": {
"id": true,
"required": true,
"type": "string",
"defaultFn": "uuid"
},
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}
出于某种原因,用户可以通过 REST api 重新定义 ID,并且在使用 idInjection: false
和定义自定义 ID 属性 时不受保护。
如果还没有完成,我会在 github 开一张工单,与此同时,您可以使用 before save
operation hook
轻松修复它
在 Account.js 中,使用 uuid 包
const uuidV4 = require('uuid/v4');
module.exports = function(Account) {
Account.observe('before save', function(ctx, cb){
if (ctx.instance) {
ctx.instance.id = uuidV4();
} else {
ctx.data.id = uuidV4();
}
cb();
});
};
这是我创建的模型的片段。我希望 id 属性 始终通过 uuid 默认函数自动生成。但是,即使添加到隐藏的 id 属性 也可以由用户决定是否将其传递给 post 创建方法。
除了使用方法钩子或操作钩子之外,要始终覆盖该值是否有另一种环回方法或标志(我也尝试过 foreId 属性)以确保该 ID 始终是一个 uuid即使用户提供了价值?如果不是,那么对于我来说,"defaultFn": "uuid" 完全没有意义,如果我总是覆盖它的话。
{
"name": "Account",
"base": "PersistedModel",
"strict": true,
"idInjection": false,
"options": {
"validateUpsert": true
},
"properties": {
"id": {
"id": true,
"required": true,
"type": "string",
"defaultFn": "uuid"
},
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}
出于某种原因,用户可以通过 REST api 重新定义 ID,并且在使用 idInjection: false
和定义自定义 ID 属性 时不受保护。
如果还没有完成,我会在 github 开一张工单,与此同时,您可以使用 before save
operation hook
在 Account.js 中,使用 uuid 包
const uuidV4 = require('uuid/v4');
module.exports = function(Account) {
Account.observe('before save', function(ctx, cb){
if (ctx.instance) {
ctx.instance.id = uuidV4();
} else {
ctx.data.id = uuidV4();
}
cb();
});
};