如果没有提供id,我想使用新的guid,但如果提供了id,则使用id。 如果存在新的guid,我想更新而不是创建新实例。
如果我发送 { "姓名":"第一次报告。" , " id":" 255af682-43c9-4d75-b0fb-7664ff51304b", "所有者" :9 } 通过postman post post请求{{url}} / report - 我的服务器运行sailsjs ...第二次创建新记录。
我已经尝试了
if ( values.hasOwnProperty('id') ) {
/* ignore */
} else {
values.id = uuid.v4();
}
但是我第二次发帖时却没有注意到主键。
这是报告模型
var uuid = require('node-uuid');
module.exports = {
attributes: {
id: {
type: 'string',
primaryKey: true
},
name: { type: 'string' },
owner: {
model: 'client'
}
},
beforeCreate: function(values, callback) {
if ( values.hasOwnProperty('id') ) {
/* ignore */
} else {
values.id = uuid.v4();
}
callback();
}
};
答案 0 :(得分:1)
我通过更改模型连接以使用mysql解决了这个问题。
示例错误结果。
{
"error": "E_VALIDATION",
"status": 400,
"summary": "1 attribute is invalid",
"invalidAttributes": {
"PRIMARY": [
{
"value": "255af682-43c9-4d75-b0fb-7664ff51304b",
"rule": "unique",
"message": "A record with that `PRIMARY` already exists (`255af682-43c9-4d75-b0fb-7664ff51304b`)."
}
]
}
}