Sequelize нетерпеливая загрузка, возвращающая неопределенный массив - PullRequest
0 голосов
/ 26 апреля 2019

Когда я пытаюсь использовать готовую загрузку для получения товаров, связанных с заказом, я получаю массив, который показывает неопределенный, когда я пытаюсь перебрать его с помощью pug.

Я уже пытался посмотретьв документации и найти решение в Интернете, но я еще не решил его

exports.getOrders = (req, res, next) => {
    req.user.getOrders({include: ['products']})
    .then((orders) => {
        console.log(orders);
        res.render("shop/orders", {
            docTitle: "Orders",
            path: "/orders",
            orders: orders,
            hasOrders: orders.length > 0 ? true: false
        });
    })
    .catch((err) => {
        console.log(err);
    }) 
}

Это контроллер, который получает заказы и связанные продукты

extends ../layout.pug

block content
    if hasOrders
        h1 You have orders!!!
        ul
            each val in orders
                li
                    h1 #{orders.id}
                    ul
                        each val in orders.products
                            li #{val.title} ( #{val.quantity} )
    else
        h1 No orders to show!!!

Это файл мопса, которыйотображает представление через переданные данные

[ order {
    dataValues:
     { id: 1,
       createdAt: 2019-04-26T11:24:20.000Z,
       updatedAt: 2019-04-26T11:24:20.000Z,
       userId: 1,
       products: [Array] },
    _previousDataValues:
     { id: 1,
       createdAt: 2019-04-26T11:24:20.000Z,
       updatedAt: 2019-04-26T11:24:20.000Z,
       userId: 1,
       products: [Array] },
    _changed: {},
    _modelOptions:
     { timestamps: true,
       validate: {},
       freezeTableName: false,
       underscored: false,
       paranoid: false,
       rejectOnEmpty: false,
       whereCollection: [Object],
       schema: null,
       schemaDelimiter: '',
       defaultScope: {},
       scopes: {},
       indexes: [],
       name: [Object],
       omitNull: false,
       sequelize: [Sequelize],
       hooks: {} },
    _options:
     { isNewRecord: false,
       _schema: null,
       _schemaDelimiter: '',
       include: [Array],
       includeNames: [Array],
       includeMap: [Object],
       includeValidated: true,
       attributes: [Array],
       raw: true },
    isNewRecord: false,
    products: [ [product] ] } ]
TypeError: C:\Users\garry\Documents\Udemy\Node js\Project\views\shop\orders.pug:11
    9|                     h1 #{orders.id}
    10|                     ul
  > 11|                         each val in orders.products
    12|                             li #{val.title} ( #{val.quantity} )
    13|     else
    14|         h1 No orders to show!!!

Cannot read property 'length' of undefined

Я чувствую, что могу упустить что-то очевидное, но любая помощь будет принята с благодарностью.

Спасибо.

...