2016-06-16 13 views
2

Die Motivation:Verschiedene Möglichkeiten zu definieren Modelle in Sequelize

ich dabei bin Sequelize der Erforschung und denken über den Aufbau einer ESLint Plugin gemeinsamen Sequelize -spezifische Code-Stil Verletzungen zu fangen (das kann statisch eingefangen werden , Na sicher).

Eine der Regeln denke ich (dank @janmeier) zu implementieren ist erzwingen type jedes Modellfeld zu haben. Von dem, was ich verstehe, ist define() eine sehr verbreitete Art und Weise ein Modell zu definieren:

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

Die Frage:

es irgendwelche andere Möglichkeiten ein Modell und seine Felder in Sequelize zu definieren?

Antwort

0

Für den Zweck der statischen Code-Analyse-Dienstprogramm habe ich begonnen zu bauen, ich nehme an, die define() Methode wird immer verwendet, um die Modelle zu definieren.

Das einzige, was Sie berücksichtigen sollten, ist, dass es 2 allgemeine Wege Modellfelder zu definieren:

  • implizite, kurze Version:

    sequelize.define('Locale', { 
        locale: DataTypes.STRING 
    }); 
    
  • explizite, länger, aber erweiterbarer und lesbarer ("Explizit ist besser als implizit"):

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

Je länger Syntax hilft auch, wenn zusätzliche Optionen wie defaultValue oder unique nötig sind, um auf einem Modellfeld angegeben werden.

Was mir tatsächlich geholfen hat, ein besseres Verständnis zu bekommen, wie man Sequelize Modelle definiert und organisiert, war die Sequelize tutorial Serie von Code Cast.

Verwandte Themen