为了账号安全,请及时绑定邮箱和手机立即绑定

如果条件没有在 Express 路由中触发

如果条件没有在 Express 路由中触发

心有法竹 2022-06-16 15:18:02
这真的很奇怪,我无法理解我做错了什么。我有一个复选框,当检查时,将searchByName参数设置为true某些React组件中的参数。然后,我正在使用axios需要.get搜索并返回用户列表的路线。如果searchByName是true,则按名称查询MongoDB,如果是 ,则false使用其他一些参数进行查询。问题是,当我searchByName在路由中进行控制台时,我看到它的值正确(真或假),但是,我检查它是真还是假的条件不会触发,我总是得到结果true案子。我添加console.log("Im name")并console.log("Im city")查看代码是否触发,但总是name如此,即使searchByName是错误的。你能帮忙解决这个问题吗?// @route   GET api/report/:search/:searchByName// @desc    Get users// @access  Privaterouter.get("/:search/:searchByName", auth, async (req, res) => {  if (req.params.searchByName) {    console.log("im name");    try {      const query = req.params.search;      const reports = await Report.find({        name: { $regex: query },        isPublic: true      })        .select([          "name",          "status",          "startDate",          "country",          "zipcode",          "city",          "address"        ])        .populate("users", [          "name",          "status",          "startDate",          "country",          "zipcode",          "city",          "address"        ]);      res.json(reports);    } catch (err) {      console.error(err.message);      res.json(err);      res.status(500).send("Server Error");    }  } else if (!req.params.searchByName) {    console.log("im city");    try {      const query = req.params.search;      const reports = await Report.find({        $or: [{ city: { $regex: query } }, { zipcode: { $regex: query } }]      })        .select([          "status",          "startDate",          "country",          "zipcode",          "city",          "address"        ])        .populate("users", [          "status",          "startDate",          "country",          "zipcode",          "city",          "address"        ]);      res.json(reports);    } catch (err) {      console.error(err.message);      res.json(err);      res.status(500).send("Server Error");    }  }});
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

你的searchByName参数是一个字符串。用于req.params.searchByName === 'true|false'检查是否为truefalse



查看完整回答
反对 回复 2022-06-16
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号