我想使用sails在PostgreSQL数据库中创建一个新用户。在我的PostgreSQL数据库中,我有一个id字段的序列。在我的model.js我有:
attributes: {
id: {
type: 'number',
required: true,
unique: true,
autoIncrement: true,
},
first_name: {
type: 'string',
required: true
},
last_name: {
type: 'string',
required: true
},
company: {
type: 'string',
allowNull: true
},
url: {
type: 'string',
allowNull: true
},
email: {
type: 'string',
required: true,
unique: true,
isEmail: true
},
password: {
type: 'string',
required: true
},}
我要创建的对象是:
{ first_name: 'g',
last_name: 'f',
company: 'f',
url: 'u',
email: '[email protected]',
password: 'Aa123456@' }
但当我尝试运行我的项目时,我得到一个错误Missing value for required attribute
id. Expected a number, but instead, got: undefined
。我现在应该怎么做?
由于id
是必填字段,因此ORM生命周期期间的验证失败,因为它期望存在id
。
您可以从模型中删除id
属性,Postgres将自动处理自动增量字段,或者您必须添加beforeValidate
钩子/函数,在验证之前将数据显式分配给id
字段。
beforeValidate
hook的样本:https://github.com/balderdashy/waterline/issues/639#issuecomment-55845733