如果用户在我的 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})
})
}
})
}