node.js - 在nodeJs中执行乘法时返回Nan

标签 node.js reactjs mongoose pagination

我正在尝试在nodejs中分页。而乘法它返回 Nan 。我尝试了 parseInt ,没有用。下面是我的代码

router.route('/imagecard/get/paginate/:pageno').get((req, res) => {

    let perpage=5;
    let pageNo=req.params.pageno;
    let query={};

    query.skip= parseInt( perpage )* (parseInt(pageNo) -1);
    console.log(parseInt( perpage ) * (parseInt(pageNo)-1));
    console.log(query.skip);
    query.limit=  perpage;

    ImageCard.find({}, {}, query, (err, data) => {
        if (err) {
            res.json({ "error": true, "message": "error fetching data" });
        } else {
            res.json(data);
        }
    }).sort({ "name": 1 });

});

该特定行返回 Nan

query.skip= parseInt( perpage )* (parseInt(pageNo) -1);

即使我尝试过这个

query.skip = perpage * (pageNo - 1);

最佳答案

发生这种情况的原因是,当您无法将该值转换为数字时,parseInt 返回 NaN(null未定义字符串[]{})。

enter image description here

可能会发生在这部分parseInt(pageNo),因为req.params.pageno可能未定义。

如果您愿意的话,您可以做一些检查以将其设为 0。

改变

let pageNo=req.params.pageno;

let pageNo = Number.isNaN(req.params.pageno) ? 0 : req.params.pageno;

Adding || 0 will make pageNo to 0 when req.params.pageno is null or undefined`, you can also change it to any number you want.

编辑:

也许你打错字了?

不应该req.params.pageno

let pageNo = req.params.pageno;

req.params.pageNo

                 // capital N
let pageNo = req.params.pageNo;

编辑2:

it just returns 0 .if the passed parameter is 2 ,returns 0.not skipping the already shown rows

我刚刚测试了它,使用参数 2,它返回 5。

enter image description here

我不确定你想做什么,不确定你想跳过多少,也许改变你的逻辑?或者不是0,而是1?现在您需要看看您有什么要求来解决这种情况。

完整代码

router.route('/imagecard/get/paginate/:pageno').get((req, res) => {

    let perpage=5;
    let pageNo = Number.isNaN(req.params.pageno) ? 0 : req.params.pageno;
    let query={};

    query.skip = parseInt( perpage )* (parseInt(pageNo) -1);
    console.log(parseInt( perpage ) * (parseInt(pageNo)-1));
    console.log(query.skip);
    query.limit = perpage;

    ImageCard.find({}, {}, query, (err, data) => {
        if (err) {
            res.json({ "error": true, "message": "error fetching data" });
        } else {
            res.json(data);
        }
    }).sort({ "name": 1 });

});

工作片段

    let reqParamsPageno = 2
    console.log('req.params.pageno', reqParamsPageno)
    let perpage = 5;
    let pageNo = reqParamsPageno;
    let query = {};
    query.skip = parseInt(perpage) * (parseInt(pageNo) -1);
    query.limit =  perpage;
    console.log('query', query);

关于node.js - 在nodeJs中执行乘法时返回Nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56753546/

相关文章:

javascript - 有状态(使用钩子(Hook))功能组件中的默认 Props

javascript - 在 react-redux 中定义函数很奇怪

javascript - react : Link to a div on another html page

node.js - 在模块中注入(inject)唯一的 Mongoose 实例

node.js - 使用 typescript 和 mongoose 的静态方法确实是 : "An interface may only extend a class or another interface."

node.js - 在yarn全局添加generator-jhipster后,你找不到jhipster

node.js - 如何通过 Nginx 反向代理向 Node/Express.js 获取 POST 请求

arrays - 使用 MongoDB 查找最相似的数组

node.js - 使用 node-cron 的 Cron 作业不会通过 console.log 进行测试

node.js - 使用 Mongoose 在 Jade 中显示数据