Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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 如果每个记录都包含nodejs和mongoose中的值,则查找记录列表_Javascript_Node.js_Mongoose - Fatal编程技术网

Javascript 如果每个记录都包含nodejs和mongoose中的值,则查找记录列表

Javascript 如果每个记录都包含nodejs和mongoose中的值,则查找记录列表,javascript,node.js,mongoose,Javascript,Node.js,Mongoose,如果包含搜索值,则为“查找用户”编写此函数 async SearchUser(type, value) { try { let objr=`${type}: ${value}`; return await User.find({objr}).exec(); }catch(err){ console.log("SearchUser -> err", err) } } 例如,我想用phoneNumber搜索,我发送以下请求: http://localhost

如果包含搜索值,则为“查找用户”编写此函数

async SearchUser(type, value) {
try {
  let objr=`${type}: ${value}`;
  return await User.find({objr}).exec();
}catch(err){
console.log("SearchUser -> err", err)

  }
}
例如,我想用phoneNumber搜索,我发送以下请求:

http://localhost:3000/admin/Manager/SearchUser/phoneNumber/091598
我想向我展示电话号码包含
091598
的USR列表

或者可能要使用用户名搜索用户:

    http://localhost:3000/admin/Manager/SearchUser/userName/adm
我想显示用户名包含admn的USR列表

当我运行“使用此代码”时,它不会显示任何内容,但在数据库中,我有包含此条件的记录


有什么问题?如何解决此问题???

您在
SearchUser
函数中创建
objr
的方式不正确

我建议您改变在服务器上处理搜索功能的方式,正如您提到的那样,您必须为相同的
find
功能创建单独的路由

使用基于查询的路由,如下所示

http://localhost:3000/admin/Manager/SearchUser?phoneNumber=091598
所以,在服务器上,您可以访问
req
对象上的这些值,比如
req.query
,您将得到一个对象

console.log(请求查询);
//输出
{
“电话号码”:“091598”
}
您还可以在此处传递多个查询,如

http://localhost:3000/admin/Manager/SearchUser?phoneNumber=091598&userName=adm
你的目标会有

console.log(请求查询);
//输出
{
“电话号码”:“091598”
“用户名”:“adm”
}
现在,您可以将整个
req.query
对象传递给
SearchUser
函数,并直接在
User.find()中使用它

伪示例:

router.get('/admin/Manager/SearchUser/,(req,res)=>{
const searchParams=req.query;
console.log(searchParams);//在此处检查您的参数
const users=SearchUser(searchParams);
返回用户;
});
const SearchUser=async(参数)=>{
试一试{
返回wait User.find(params.exec();
}捕捉(错误){
log(“SearchUser->err”,err);
}
}
API URL示例:
http://localhost:3000/admin/Manager/SearchUser?phoneNumber=09159

谢谢,但我的问题是:
我想找到每个用户phoneNymver都包含0915981
@kianushdortaj,我添加了一个小的伪代码示例,您如何通过这种方式实现同样的目标。