Используйте псевдонимы для имен столбцов при настройке моделей в sequelize - PullRequest
0 голосов
/ 19 марта 2020

Я новичок в продолжении и пытаюсь реализовать его в существующем проекте node / express.

Пока у меня есть эта простая модель, и она работает, когда я запрашиваю ее

  const User = sequelize.define('AppUser', {
    // attributes
    idUser: {
      type: Sequelize.INTEGER,
      allowNull: false,
      primaryKey: true
    } 
  });

Таким образом, таблица с именем AppUser, имеющая первичный ключ с именем idUser, теперь является моделью пользователя.

Идентификатор пользовательской модели равен idUser, так же, как и таблица AppUser.

Если я изменю отображение на другую таблицу, скажем, webUser, а id - это webId, мне придется перейти от idUser. к веб-пользователю во всех моих запросах. Какой смысл сопоставления в одном месте?

Я должен быть в состоянии сделать что-то вроде (псевдокод)

  const User = sequelize.define('webUser', {
    // attributes
    id AS idUser or webUser or whatever: {
      type: Sequelize.INTEGER,
      allowNull: false,
      primaryKey: true
    } 
  });

Что мне здесь не хватает, в сопоставлении столбцов?

Спасибо

1 Ответ

1 голос
/ 20 марта 2020

Просто используйте поле prop:

AppUser

// attributes
    id: {
      field: 'idUser',
      type: Sequelize.INTEGER,
      allowNull: false,
      primaryKey: true
    } 

WebUser

// attributes
    id: {
      field: 'webId',
      type: Sequelize.INTEGER,
      allowNull: false,
      primaryKey: true
    } 
...