Node.js 从MongoDB中的集合获取文档时出错
我正在开发一个应用程序,我必须通过sportsname进行过滤。我是 在后端使用Node.js和MongoDB 这是我的密码:- 这是文件。我想按sportsname搜索用户 当我在那个时间运行时,它给出了一个错误。错误如下所示:-Node.js 从MongoDB中的集合获取文档时出错,node.js,mongodb,mongoose,mongodb-query,Node.js,Mongodb,Mongoose,Mongodb Query,我正在开发一个应用程序,我必须通过sportsname进行过滤。我是 在后端使用Node.js和MongoDB 这是我的密码:- 这是文件。我想按sportsname搜索用户 当我在那个时间运行时,它给出了一个错误。错误如下所示:- TypeError: path must be a string at Query.where (/node/node-api-master/node_modules/mongoose/lib/query.js:593:11) at Object.handle
TypeError: path must be a string at Query.where
(/node/node-api-master/node_modules/mongoose/lib/query.js:593:11)
at Object.handle (/node/node-api-master/server.js:202:19) at next_layer
(/node/node-api-master/node_modules/express/lib/router/route.js:103:13)
at Route.dispatch (/node/node-api-master/node_modules/express/lib/router/route.js:107:5)
at /node/node-api-master/node_modules/express/lib/router/index.js:195:24
at param (/node/node-api-master/node_modules/express/lib/router/index.js:268:14)
at param (/node/node-api-master/node_modules/express/lib/router/index.js:280:16)
at param (/node/node-api-master/node_modules/express/lib/router/index.js:280:16)
at Function.proto.process_params
(/node/node-api-master/node_modules/express/lib/router/index.js:296:3)
at next (/node/node-api-master/node_modules/express/lib/router/index.js:189:19)
这是一个语法问题,下面是您尝试执行的正确实现:
router.get('/user/:_id/explore/:sportsname', function(req, res, next) {
return Host.find({ sportsname: req.params.sportsname }, function(err, users) {
if (err) return next(err);
console.log(users);
return res.json(users);
});
});
请注意,检查req.params.sportsname是否存在是不必要的,因为如果不存在,您的路线将永远无法到达。如果要使此参数成为可选参数,请使用以下命令:/user/:\u id/explore/:sportsname?在参数后添加问号。能否编辑问题以显示主机架构定义?我认为这是因为代码中存在语法问题,请查看并检查警告
TypeError: path must be a string at Query.where
(/node/node-api-master/node_modules/mongoose/lib/query.js:593:11)
at Object.handle (/node/node-api-master/server.js:202:19) at next_layer
(/node/node-api-master/node_modules/express/lib/router/route.js:103:13)
at Route.dispatch (/node/node-api-master/node_modules/express/lib/router/route.js:107:5)
at /node/node-api-master/node_modules/express/lib/router/index.js:195:24
at param (/node/node-api-master/node_modules/express/lib/router/index.js:268:14)
at param (/node/node-api-master/node_modules/express/lib/router/index.js:280:16)
at param (/node/node-api-master/node_modules/express/lib/router/index.js:280:16)
at Function.proto.process_params
(/node/node-api-master/node_modules/express/lib/router/index.js:296:3)
at next (/node/node-api-master/node_modules/express/lib/router/index.js:189:19)
router.get('/user/:_id/explore/:sportsname', function(req, res, next) {
return Host.find({ sportsname: req.params.sportsname }, function(err, users) {
if (err) return next(err);
console.log(users);
return res.json(users);
});
});