일대일 예제 시퀀싱 – Nodejs 연결

2880 단어 sequelizeonetoonenode
https://loizenai.com/sequelize-one-to-one-example/

튜토리얼에서는 NodeJS/Express, MySQL을 사용하여 Sequelize One-To-One 예제 연결 모델을 만드는 방법을 안내합니다.
  • Nodejs 연결을 일대일로 후속화하기 위한 기술:
  • Nodejs
  • 익스프레스
  • 시퀄라이즈
  • MySQL

  • 일대일 예시 연관 연속화



    참고: Customer.hasOne(Address) 와 같은 메서드를 호출할 때 Customer 모델이 소스이고 Address 모델이 대상이라고 말합니다.

    2가지 모델을 정의합니다.
    
    Customer = sequelize.define('customer', {
      /* attributes */
    });
    
    Address = sequelize.define('address', {
        /* attributes */
    });
    

    그들 사이에 일대일 연결을 만드는 방법은 무엇입니까?
    -> Sequelize는 2가지 방법을 제공합니다.
  • 소속
  • 
    Address.belongsTo(Customer); // Will add a customerId attribute to Address to hold the primary key value for Customer.
    
  • hasOne
  • 
    Customer.belongsTo(Address); // Will add an attribute customerId to the Address model.
    

    속하는 것과 hasOne의 차이점은 무엇입니까?
    -> hasOne은 대상 모델에 연관 키를 삽입하는 반면 BelongsTo는 소스 모델에 연관 키를 삽입합니다.

    아래 코드와 같이 foreignKeytargetKeybelongsTohasOne 관계와 결합하여 솔루션을 만들 수 있습니다.
    
    Customer = sequelize.define('customer', {
      uuid: {
        type: Sequelize.UUID,
        defaultValue: Sequelize.UUIDV1,
        primaryKey: true
      },
      /*
        more attributes
      */
    });
    
    Address = sequelize.define('address', {
        /* attributes */
    });
        
    Address.belongsTo(Customers, {foreignKey: 'fk_customerid', targetKey: 'uuid'});
    Customers.hasOne(Address, {foreignKey: 'fk_customerid', targetKey: 'uuid'});
    

    외래 키
  • extendsTo 관계에서 대상 모델 이름과 대상 기본 키 이름에서 외래 키가 생성됩니다. Sequelize는 defaultValue를 재정의하는 foreignKey 옵션을 제공합니다.

  • 대상 키
  • 대상 키는 소스 모델의 외래 키 열이 가리키는 대상 모델의 열입니다. MembersTo 관계에서 기본적으로 대상 키는 대상 모델의 기본 키가 됩니다. Sequelize는 사용자 정의 열을 정의하는 targetKey 옵션을 제공합니다.

  • 그것을 저장하는 방법?
    
    var customer;
    Customer.create({ 
        firstname: 'Jack',
        ...
        }).then(createdCustomer => {        
            // Send created customer to client
            customer = createdCustomer;
            
            return Address.create({
                street: 'W NORMA ST',
                ...
            })
        }).then(address => {
            customer.setAddress(address)
        })
    };

    엔티티를 가져오는 방법은 무엇입니까? - 튜토리얼: "일대일 예제 연결 연속화 - Nodejs MySQL"

    더보기: https://loizenai.com/sequelize-one-to-one-example/

    좋은 웹페이지 즐겨찾기