2017-11-08 4 views
0

sequelizeとNodeJSを使用してfirst_namelast_nameを小文字で挿入する必要があります。 すべてのエントリを小文字にするモデルを定義するにはどうすればよいですか?あなたが探しているもの挿入されたすべてのエントリが小文字になるようなSequelizeモデルを定義する

const Users = sequelize.define('users', { 
     id: { 
      type: Sequelize.INTEGER, 
      primaryKey: true, 
     }, 
     mobile : { 
      type: Sequelize.STRING, 
     } 
     first_name: { 
      type: Sequelize.STRING, 

     }, 
     last_name :{ 
      type: Sequelize.STRING, 
      }, 
     email :{ 
      type: Sequelize.STRING, 
     } 
    }, 
    { 
     freezeTableName: true // Model tableName will be the same as the model name 
    }, 
    { 
     where: { 
      $and: [ 
       sequelize.where(sequelize.fn('lower', sequelize.col('first_name'))), 
        sequelize.where(sequelize.fn('lower', sequelize.col('last_name'))) 
       ] 
      } 
    } 
); 
+0

あなたの質問は、実際のMySQLとは何かを持っていますか? –

+0

私はmysqlデータベースのsequelizeを使用 –

答えて

0

beforeCreate() sequelizeフックです:

const Users = sequelize.define('users', { 
     id: { 
      type: Sequelize.INTEGER, 
      primaryKey: true, 
     }, 
     mobile : { 
      type: Sequelize.STRING, 
     } 
     first_name: { 
      type: Sequelize.STRING, 

     }, 
     last_name :{ 
      type: Sequelize.STRING, 
     }, 
     email :{ 
      type: Sequelize.STRING, 
     } 
    }, 
    { 
     freezeTableName: true 
    }, 
    hooks: { 
     beforeCreate: function(user){ 

      user.first_name = user.first_name.toLowerCase(); 
      user.last_name = user.last_name.toLowerCase(); 

      return user; 

     } 
    } 

); 
関連する問題