Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 回答是什么;“坏值”;在mongodb中使用url中的查询参数时,如何解决它?_Javascript_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Javascript 回答是什么;“坏值”;在mongodb中使用url中的查询参数时,如何解决它?

Javascript 回答是什么;“坏值”;在mongodb中使用url中的查询参数时,如何解决它?,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,当我在url中使用查询参数skip和limit时,会出现此错误 localhost:5000/api/posts?skip=0&limit=5 这是我写的网址 { "ok": 0, "code": 2, "codeName": "BadValue", "name": "MongoError" } 代码如上所示。因为您使用的是mongoose,所

当我在url中使用查询参数skip和limit时,会出现此错误

localhost:5000/api/posts?skip=0&limit=5

这是我写的网址

{
    "ok": 0,
    "code": 2,
    "codeName": "BadValue",
    "name": "MongoError"
}

代码如上所示。

因为您使用的是mongoose,所以需要传递
null
作为第二个参数:

postsController.list = (req, res) => {
    console.log(req.query)
    // let skip = Number(req.query.skip) || 0
    // let limit = Number(req.query.limit) || 5
    const { skip = 0, limit = 5 } = req.query
    Post.find({}, {skip: Number(skip), limit: Number(limit) }).populate('comments')
        .then((posts) => {
            res.json(posts)
        })
        .catch((err) => {
            res.json(err)
        })
}
该参数是,它定义了要从查询中包括或排除的字段

但是,您可以通过以下方式链接和方法:

Post.find({}, null, {skip: Number(skip), limit: Number(limit) })     ...

你也在使用mongoose还是mongodb驱动程序?是的,我在使用mongoose。
Post.find({})
    .skip(Number(skip))
    .limit(Number(limit))
    .populate('comments')
    .then((posts) => {
        res.json(posts)
    })
    .catch((err) => {
        res.json(err)
    })