sails возвращает ошибку при создании нового пользователя в postgresql без идентификатора - PullRequest
0 голосов
/ 31 августа 2018

Я хочу создать нового пользователя в базе данных 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: 't@h.co',
  password: 'Aa123456@' }

но когда я пытаюсь запустить свой проект, я получаю сообщение об ошибке Missing value for required attribute id . Expected a number, but instead, got: undefined. что мне теперь делать?

1 Ответ

0 голосов
/ 01 сентября 2018

Поскольку поле id является обязательным, проверка в течение жизненного цикла ORM не выполняется, так как ожидается, что id будет присутствовать.

Либо вы можете удалить атрибут id из модели, и Postgres автоматически позаботится о поле автоинкремента, либо вам нужно будет добавить хук / функцию beforeValidate, где вы явно назначаете данные полю id до проверки.

Образец beforeValidate крючка: https://github.com/balderdashy/waterline/issues/639#issuecomment-55845733

...