【发布时间】:2021-07-19 05:32:34
【问题描述】:
这是一个 React、Node、MongoDB 和 Express 项目。 我正在尝试在我的“查找工作”页面上进行多个字段搜索。 路线如下所示:
<Route path="/findjobs/:keyword?/:location?/:category?/:page?">
<FindJobs />
</Route>
在我的 redux 代码中,我得到不同的参数并将它们发送到后端。
const { data } = await axios.get(`/api/jobs?keyword=${keyword}&location=${location}&category=${category}`);
使用唯一的“关键字”字段一切正常,我设法显示结果。
const getJobs = asyncHandler(async(req, res) => {
const keyword = req.query.keyword ? {
title: {
$regex: req.query.keyword,
$options: 'i'
}
} : {}
const jobs = await Job.find({ ...keyword });
res.json(jobs);
})
我想知道如何做同样的事情,但同时使用所有字段或仅使用第二个或第三个字段。我还注意到,使用 React,当我传递第二个字段而第一个字段为空时,它会创建一个类似“localhost:3000/findjobs//newyork”的链接。我对可选参数做错了吗?
【问题讨论】:
标签: node.js reactjs mongodb express