不会进行服务器端排序

时间:2019-02-01 09:06:23

标签: node.js express sequelize.js

服务器排序不适用于我。我使用ORM Sequelize。默认情况下,我必须按名称和升序排序。但是,当我想在客户端上按降序进行排序时,什么也没有发生,但是这样的请求会显示在终端中。

  

执行(默认):SELECT count(*)AS“ count” FROM   “ spr_turbodrills” AS“ spr_turbodrills”;

     

执行(默认):   选择“ turbodrill_id”,“名称”,“主轴”,“ turbodrill_n”,   来自“ spr_turbodrills”的“ createdAt”,“ updatedAt”,如“ spr_turbodrills”   ORDER BY“ spr_turbodrills”。“名称”    ASC :LIMIT 1 OFFSET 0;

也就是说,根本没有基于sql查询进行排序。

虽然您在这里看,但一切似乎都很好。

  

获取/ 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 :(得分:0)

我认为这是因为您硬编码总是在控制器中使用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