Сортировка на стороне сервера не происходит - PullRequest
0 голосов
/ 01 февраля 2019

Серверная сортировка у меня не работает.Я использую ORM Sequelize.По умолчанию приходится сортировать по имени и по возрастанию.Но когда я хочу выполнить сортировку в порядке убывания на клиенте, ничего не происходит, но такой запрос отображается в терминале.

Выполнение (по умолчанию): SELECT count (*) AS "count"ОТ" spr_turbodrills "AS" spr_turbodrills ";

Выполнение (по умолчанию): ВЫБЕРИТЕ "turbodrill_id", "name", "spindle", "turbodrill_n", "creationAt", "updatedAt" ИЗ "spr_turbodrills" AS "spr_turbodrills" ORDER BY "spr_turbodrills". "имя " ASC LIMIT 1 OFFSET 0;

То есть сортировка, основанная на запросе sql, вообще не выполнялась.

Хотя если вы посмотрите здесь, то все будет хорошо.

GET / api / directory / spr_turbodrills / all? order = desc & pageSize = 1 & page = 1 200 7,805 мс - 163

контроллер:

module.exports.getAllPaginate = async function (req, res) {
    try {
        const query = {
            offset:  +req.query.pageSize * ( +req.query.page - 1),
            limit:  +req.query.pageSize,
            order: [
                ['name', 'ASC']
            ]
        }

        const spr_turbodrills = await SprTurbodrills.findAndCountAll(query)
        res.status(200).json(spr_turbodrills)
    } catch(e) {
        errorHandler(res, e)
    }   
}

1 Ответ

0 голосов
/ 01 февраля 2019

Я думаю, это потому, что вы жестко запрограммированы, чтобы всегда использовать ASC в вашем контроллере

module.exports.getAllPaginate = async function (req, res) {
try {
    const query = {
        offset:  +req.query.pageSize * ( +req.query.page - 1),
        limit:  +req.query.pageSize,
        order: [
            ['name', req.query.order]
        ]
    }

        const spr_turbodrills = await SprTurbodrills.findAndCountAll(query)
        res.status(200).json(spr_turbodrills)
    } catch(e) {
        errorHandler(res, e)
    }   
}

, а затем попробуйте это:

GET /api/directory/spr_turbodrills/all?order=DESC&pageSize=1&page=1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...