我正在将Sequelize express与Node.js用作后端。我有模特事件和模特买家之间有很多关系

示范活动:

module.exports = function (sequelize, DataTypes) {
    var Event = sequelize.define("Event", { //...},
{
            tableName: 'event',
            timestamps: false,
            freezeTableName: true,
            classMethods: {
                associate: function (models) {
                    Event.hasMany(models.Meetings, {foreignKey: 'event_id'});

                Event.belongsToMany(models.Buyer, {
                    through: 'BuyerPresent'});

                Event.belongsToMany(models.Seller, {
                    through: 'SellerPresent'});
                }
            }
        });

    return Event;
};


模特卖家:

module.exports = function (sequelize, DataTypes) {
    var Seller = sequelize.define("Seller", { //...
    }, {
        tableName: 'seller',
        timestamps: false,
        freezeTableName: true,
        classMethods: {
            associate: function (models) {
                Seller.hasMany(models.Meetings, {foreignKey: 'seller_id'});

                Seller.belongsToMany(models.Event, {
                    through: 'SellerPresent'});
            }
        }
    });

    return Seller;
};


我运行查询并发送数据

res.render('path', {'results':seller})




function findIdSeller(selectEvent) {
    var match = {
        where: {
            event: selectEvent
        },
        // include: {
        //     model: Seller
        // },
        include: [{
            model: Seller,
            nested: false
        }],
        // plain:true

        raw: true
    };
    return models.Event.findAll(match)
}
exports.findDataSellerPromise = function (selectEvent) {
    return findIdSeller(selectEvent).then(function (result) {
        return result.map(function(seller) {
            console.log('SELLINFO: ', seller);
            return seller;
        });
    });
};


在终端我收到:

{
    id: 4,
    incoming: 2,
    event: 4,
    'Sellers.id': 1,
    'Sellers.name_firm': 'kdm srl',
    'Sellers.site': 'www.terrebasse.com'
}


我如何以以下方式退货:

{
    id: 4,
    incoming: 2,
    event: 4,
    Sellers: {
        id': 1,
        name_firm: 'kdm srl',
        site: 'www.terrebasse.com'
    }
}

最佳答案

从查询中删除raw: true
这将使卖家在每个事件中都作为实例

就像是

{
   //Event1 properties
   Sellers: {
      // Associated sellers properties
    }
}


猜猜我参加聚会太迟了。
但是对于其他面临类似问题的人

10-06 15:50
查看更多