如何访问问号​​后的查询参数?

时间:2021-01-30 13:38:56

标签: reactjs api express

在搜索框中搜索产品后,我的应用程序执行获取请求

<块引用>

“localhost/api/products?searchword”。

现在我想构建一个快速 api,在我的数据库中搜索搜索词。 我如何访问搜索词?

我尝试使用 req.query.name 但它只适用于像

这样的链接 <块引用>

“localhost/api/products?name=searchword”。

如何访问我的特定链接

2 个答案:

答案 0 :(得分:0)

我有一个快速 API 端点可以做到这一点。

我使用以下 URL 结构调用它:/blog/search?q=some+search+string

export const blogSearch: RequestHandler = async (req, res) => {
  const queryString = (req.query.q || "");
  // ...
}

为了使用 req.query,您应该使用 ?key1=value1,key2=value2 结构。

http://expressjs.com/en/api.html#req.query

enter image description here

如果你想手动解析queryString,你可以使用req.url,你会得到/api/products?searchword,所以你可以在?读取你的searchWord

答案 1 :(得分:0)

也许有人会遇到同样的问题,所以我想发布我的代码

router.get('/',
expressAsyncHandler( async (req, res)=> {
    const name =  req.url.split('?')[1] || "";
    console.log(name);
    const nameFilter= name ? { title: {$regex: name, $options: 'i'} } : {};
    const products = await Product.find({
      ...nameFilter,
    }).populate();
    res.send(products);
})
);