router.get('/list', async (ctx) => { // https://aa.cc.com/user?page=2&size=20&keyword=书名#fdsafds const { page = 1, keyword = '', } = ctx.query; let = { size = 10, } = ctx.query; size = Number(size); // 2 20 // 20 20 // (page - 1) * size const query = {}; if (keyword) { query.name = keyword; } const list = await Book .find(query) .sort({ _id: -1, }) .skip((page - 1) * size) .limit(size) .exec(); const total = await Book.countDocuments();
时间: 2023-12-06 19:43:08 浏览: 82
Express之get,pos请求参数的获取
这段代码实现了一个 GET 请求处理函数,用于获取书籍列表。函数首先从请求的 query 参数中解构出 page 和 keyword 参数,如果没有传递则分别默认为 1 和空字符串。然后从 query 参数中解构出 size 参数,默认值为 10,但是要注意这里使用了 let 关键字,因为后面会重新给 size 赋值。然后将 size 参数转换为数字类型。接下来根据 keyword 参数判断是否需要筛选书名,如果有则将其作为查询条件的一部分。然后使用 mongoose 的 find 方法查询满足条件的书籍列表,按照 _id 字段倒序排列,并跳过前面 (page - 1) * size 条记录,最多返回 size 条记录。最后使用 countDocuments 方法统计满足条件的书籍总数。
阅读全文