【问题标题】:Sequelize include return dataSequelize 包括返回数据
【发布时间】:2017-06-18 22:25:30
【问题描述】:

我正在使用以 Node.js 作为后端的 Sequelize express。我有模型事件和模型买家与多对多关系

模型事件:

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'
    }
}

【问题讨论】:

  • 使用return res.json(seller);

标签: node.js express pug sequelize.js


【解决方案1】:

从查询中删除raw: true 这会给卖家作为每个事件的实例

有点像

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

我想我来晚了.. 但是对于其他面临类似问题的人

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    • 2016-03-12
    • 2018-09-09
    • 2015-07-27
    • 2020-06-29
    • 2014-02-17
    相关资源
    最近更新 更多