Javascript 回答是什么;“坏值”;在mongodb中使用url中的查询参数时,如何解决它?
当我在url中使用查询参数skip和limit时,会出现此错误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,所
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)
})