sequelizeの使い方

1502 ワード

昨日アップロードした

クライアントがサーバに要求すると、要求はルータから消去され、コントローラに転送されます.また、コントローラはモデルにやるべきことを伝え、モデルはdbの情報を修正またはインポートします.その後、コントローラに渡し、viewに表示してクライアントに接触します.
以前はurlのみを受信して処理していましたが、後でこのmvcモードが便利になるので使うべきです.
今日は昨日のmvcモードを除いて、関係を追加する方法を学びました.
まず、外部キーの追加方法を指定するにはmodelassociateに追加するか、テーブルにフィールドを作成して移行に追加する方法
User.associate = function(models) {
    // associations can be defined here
    User.hasMany(models.Task, {
      foreignKey: 'userId',
      as: 'tasks'
    });
  }; 
このように追加します.
'use strict';

module.exports = {
  up: async (queryInterface, Sequelize) => {
    // field 추가
    await queryInterface.addColumn('urls', 'userId', Sequelize.INTEGER);

    // foreign key 연결
    await queryInterface.addConstraint('urls', {
      fields: ['userId'],
      type: 'foreign key',
      name: 'FK_any_name_you_want',
      references: {
        table: 'users',
        field: 'id'
      },
      onDelete: 'cascade',
      onUpdate: 'cascade'
    });

  },

  down: async (queryInterface, Sequelize) => {
    await queryInterface.removeConstraint('urls', 'FK_any_name_you_want');
    await queryInterface.removeColumn('urls', 'userId');
  }
};
このように追加または作成すればよいしかし、テストに合格するには2つ目の方法が必要なので、こちらをたくさん使います.