Có bác nào Pro sequelize không?Chỉ giáo em chút về associate với ạ.Thanks!



  • Chẳng là em có 2 bảng user và project có dàng buộc với nhau nhưng không bjt viết phần associate ntn cho nó đúng,toàn báo lỗi khi get list hoặc create, cấu trúc 2 bảng kiểu như sau:
    const Users = sequelize.define(
    'Users',
    {id: {autoIncrement: true,
    primaryKey: true,
    type: DataTypes.INTEGER
    },name:{
    type: DataTypes.STRING
    }
    })
    Users.hasMany(models.ProjectUsers);

    const Projects = sequelize.define(
    'Projects',
    {id: {autoIncrement: true,
    primaryKey: true,
    type: DataTypes.INTEGER
    },name:{
    type: DataTypes.STRING
    },createBy:{
    field: 'created_by',
    references: {
    model: 'users',
    key: 'id'
    }},updated_by:{
    field: 'updated_by',
    references: {
    model: 'users',
    key: 'id'
    }
    }
    })
    Projects.associate = function(models) {
    // associations can be defined here
    Projects.belongsTo(models.Users, {
    onDelete: 'CASCADE',
    foreignKey: {
    field: 'created_by',
    allowNull: false
    },
    targetKey: 'id',
    as: 'created_by'
    });
    Projects.belongsTo(models.Users, {
    onDelete: 'CASCADE',
    foreignKey: {
    field: 'updated_by',
    allowNull: false
    },
    otherKey: 'id',
    as: 'updated_by'
    });
    };


    Hiện tại em đang viết ntn,có bác nào pro chỉ em viết sao cho đúng để khi include lúc get list và khi crearte cho đúng với ạ.
    thanks các bác nhiều!



  • Hàm sync setup model viết 1 lần thôi bạn. Chạy lúc đầu.
    Ex:

    models/users.js

    export const User = sequelize.define('User', {
      id: {autoIncrement: true, primaryKey: true, type: DataTypes.INTEGER}
    })
    

    models/project.js

    export const Project = sequelize.define('project', {
      id: {autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER},
      created_by: { type: Sequelize.INTEGER }
    })
    

    model/sync.js

    import { User } from './user'
    import { Project } from './project'
    
    export function sync() {
        return new Promise((resolve, reject) => {
            User.hasMany(Project, {foreignKey: 'created_by'})
            Project.belongsTo(User, {foreignKey: 'created_by'})
            resolve('Done Sync Data')
        })
    }
    

    main.js

    import { sync } from 'models/sync'
    
    sync().then(msg => run server)
    

    Sent from Rodgers Zone!!!

    0

Log in to reply