我在我的節點 js 專案中使用分頁中間件,但是在郵遞員中測驗 api 時拋出錯誤跳過值
遵循分頁檔案,但仍然沒有用

下面是我的分頁中間件
const pagination = (model) => {
return async (req, res, next) => {
const limit = parseInt(req.query.limit);
const page = parseInt(req.query.page);
if (page < 1 || page == undefined) {
page = 1;
}
if (limit < 1 || limit == undefined) {
limit = 2;
}
const startIndex = (page - 1) * limit;
const endIndex = page * limit;
const result = {};
model.countDocuments({}, (err, count) => {
const lengthOfDB = count;
if (endIndex < lengthOfDB) {
result.next = {
page: page 1,
//limit: limit,
};
}
}).clone();
if (startIndex > 0) {
result.previous = {
page: page - 1,
//limit: limit,
};
}
try {
result.result = await model.find().limit(limit).skip(startIndex).exec();
res.json(result);
} catch (e) {
res.status(500).json({ message: e.message });
}
};
};
uj5u.com熱心網友回復:
如果page未在查詢中提供,它將最終成為NaN,因為此代碼不涵蓋這種情況:
// 'req.query.page' is undefined
let page = parseInt(req.query.page);
if (page < 1 || page == undefined) {
page = 1;
}
// 'page' is now equal to NaN
處理此問題的正確方法可能是:
let page = parseInt(req.query.page);
if (page < 1 || isNaN(page)) {
page = 1;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/473609.html
標籤:javascript 节点.js 分页 后端 中间件
