在没有id的情况下为postgresql创建新用户时,sails返回错误

问题描述 投票:0回答:1

我想使用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 attributeid. Expected a number, but instead, got: undefined。我现在应该怎么做?

javascript database postgresql orm sails.js
1个回答
0
投票

由于id是必填字段,因此ORM生命周期期间的验证失败,因为它期望存在id

您可以从模型中删除id属性,Postgres将自动处理自动增量字段,或者您必须添加beforeValidate钩子/函数,在验证之前将数据显式分配给id字段。

beforeValidate hook的样本:https://github.com/balderdashy/waterline/issues/639#issuecomment-55845733

© www.soinside.com 2019 - 2024. All rights reserved.