2016-06-16 2 views
2

Мотивация:Различных способы определения модели в Sequelize

Я нахожусь в процессе исследования Sequelize и думать о построении ESLint плагина, чтобы поймать общие Sequelize Определённых нарушения кода стилей (которые могут быть пойманными статически , конечно).

Одно из правил Подумываю реализовать (благодаря @janmeier) является соблюдение имеющих type для каждого поля модели. Из того, что я понимаю, define() является очень распространенным способом определить модель:

sequelize.define('Locale', { 
    id: { 
     type: DataTypes.INTEGER, 
     autoIncrement: true, 
     primaryKey: true 
    }, 
    locale: { 
     type: DataTypes.STRING, 
     allowNull: false 
    } 
}); 

Вопрос:

Существуют ли какие-либо другие способы для определения модели и его поля в Sequelize?

ответ

0

С целью утилиты статического анализа кода, которую я начал строить, я предполагаю, что метод define() всегда используется для определения моделей.

Единственное, что вы должны принять во внимание то, что есть 2 общие способы определения модели полей:

  • неявное, короткая версия:

    sequelize.define('Locale', { 
        locale: DataTypes.STRING 
    }); 
    
  • явное, длиннее, но более расширяемый и читаемый («Явный лучше, чем неявный»):

    sequelize.define('Locale', { 
        locale: { 
         type: DataTypes.STRING 
        } 
    }); 
    

Чем дольше синтаксис также помогает, когда дополнительные опции, такие как defaultValue или unique необходимы, чтобы быть указано в поле модели.

Что на самом деле помогло мне лучше понять, как определить и организовать модели Sequelize, была серия Sequelize tutorial по коду Cast.

Смежные вопросы