鍍金池/ 問答/數(shù)據(jù)庫  HTML/ sequelize關聯(lián)關系如何插入數(shù)據(jù)

sequelize關聯(lián)關系如何插入數(shù)據(jù)

我用sequelize定義了兩個表,其中User.hasMany(Passenger),Passenger.belongsTo(User),我不是很懂文檔里面說的這些將添加xx方法到xx上,按文檔所說,我的Passenger可以獲得一個setUsers和getUsers,我的User可以得到一個setPassengers和getPassenger,這些方法是從哪里來的呢 需要我去對應的模型里面寫嘛,該怎么寫呢,寫在哪

clipboard.png

const Passenger = sequelize.define("passenger",{
    p_id: {
        type: Sequelize.INTEGER,
        autoIncrement: true,
        primaryKey: true
    },
    name: {
        type: Sequelize.STRING
    },
    phone: {
        type: Sequelize.STRING
    },
    id_card: {
        type: Sequelize.STRING,
        unique: true
    }
},{
    timestamps: false,
    freezeTableName: true//禁用修改表名
});

const User = sequelize.define("user",{
    u_id: {
        type: Sequelize.INTEGER,
        autoIncrement: true,
        primaryKey: true
    },
    username: {
        type: Sequelize.STRING,
        unique: true
    },
    password: {
        type: Sequelize.STRING
    },
    roles: {
        type: Sequelize.STRING,
        defaultValue: "common"
    }
},{
    timestamps: false,
    freezeTableName: true//禁用修改表名
    // setUsers(u_id) {
    //     return this.setDataValue(u_id.key,u_id.value);
    // }
});


User.hasMany(Passenger);
Passenger.belongsTo(User);
回答
編輯回答
吃藕丑

不需要寫,這是sequelize自帶的,這樣做是為了以便于你查詢的時候可以把關聯(lián)的內(nèi)容順帶查出來.

//查詢用戶記錄時候通過uid順便把用戶信息通過YepUserRef帶出來.
//sequelize通過你建立的連接調(diào)用get方法查出關聯(lián)信息

db.YepUserRecordRef.belongsTo(db.YepUserRef, {foreignKey: "yuid"});

YepUserRecordRef.findAll({
        where: {
            yuid: yuid
        },
        include: [YepUserRef]
    }).then(function (result) {
        callback(result)
    }).catch(function (err) {
        callback(err)
    });

以上都是我自己的理解,如有錯誤請指正.看見樓主再用sequelize,當初也用他寫過一些項目,如果有疑問可以隨時問我!(手動滑稽);
分享一下我當初學比較好的文檔 https://itbilu.com/nodejs/npm...

2017年11月29日 00:50