我希望数据库中有请求限制的列表,而不是我的完整列表[关闭]

问题描述 投票:0回答:0

如果用户在我的 url 中输入 2 的限制(例如:http://localhost:3000/api/pokemons?limit=2),它会返回我数据库的完整列表,而不是用户询问的 2 个元素。

const { Pokemon } = require('../db/sequelize')
const { Op } = require('sequelize')

module.exports = (app) => {
    app.get('/api/pokemons', (req, res) => {
        if(req.query.name) {
            const name = req.query.name
            const limit = parseInt(req.query.limit) || 5

            return Pokemon.findAndCountAll({
                where : {
                    name: { // est la propriété du model
                        [Op.like]: `%${name}%` // critère de recherche
                    }
                },
                order: ['name'],
                limit: limit
            })
                .then(({count, rows}) => {
                    const message = `Il y a ${count} pokémons qui correspondent au terme de recherche ${name}.`
                    res.json({ message, data: rows})
                })
        } else {
            Pokemon.findAll({ order: ['name'] })
                .then(pokemon => {
                    const message = 'La liste des pokémons a bien été récupérée.'
                    res.json({ message, data: pokemon })
                })
                .catch(error => {
                    const message =  `La liste des pokémons n'a pas pu être récupérée. Réssayer dans quelque instants`
                    res.status(500).json({message, data: error})
                })
        }
    })
}
javascript node.js express sequelize.js limit
© www.soinside.com 2019 - 2024. All rights reserved.