2017-11-29 3 views
1

Ich habe die Verwendung von beiden Klassen für die Definition von Datentypen gesehen, einschließlich in der offiziellen Dokumentation, beide dienen offenbar dem gleichen Zweck.Sequelize: Unterschied von DataTypes und Sequelize

In einem Lernprogramm sah ich, dass die Anwendung DataTypes für das Model und Sequelize für Migrationen verwendete, Sie können zwischen ihnen austauschen und sie funktionieren weiterhin. Beispiel-Codes:

Modell mit Datatypes:

module.exports = (sequelize, DataTypes) => { 
    const Driver = sequelize.define('Driver', { 
    firstName: { 
     type: DataTypes.STRING(50), 
     allowNull: false 
    }, 

Migration mit Sequelize:

module.exports = { 
    up: (queryInterface, Sequelize) => { 
    return queryInterface.createTable('Drivers', { 
     id: { 
     allowNull: false, 
     autoIncrement: true, 
     primaryKey: true, 
     type: Sequelize.INTEGER 
     }, 

Antwort

2

Der zweite Parameter in beiden von ihnen ist nur die sequelize Paket selbst

const Sequelize = require('sequelize'); 

Sie werden in Ihrem index.js von Modellen feststellen (wenn Sie wie vorgeschlagen einrichten), die Sie wie etwas zu tun das unten, wo du vorbeigehst, folgst als zweites Argument.

const model = require(path.join(__dirname, file))(sequelize, Sequelize); 

Dies macht die Datentypen verfügbar. Es ist egal, wie du es nennst. Zum Beispiel

module.exports = (sequelize, asd) => { 
    const Driver = sequelize.define('Driver', { 
    firstName: { 
     type: asd.STRING(50), 
     allowNull: false 
    }, 

Gleich mit Migrationen.

+0

Natürlich sehe ich das jetzt. Vielen Dank! – Deeh

0

Wie in den docs angegeben, Datatypes ist:

Eine bequeme Klasse häufig verwendeter Halt Datentypen.