在搜索框中搜索产品后,我的应用程序执行获取请求
<块引用>“localhost/api/products?searchword”。
现在我想构建一个快速 api,在我的数据库中搜索搜索词。 我如何访问搜索词?
我尝试使用 req.query.name 但它只适用于像
这样的链接 <块引用>“localhost/api/products?name=searchword”。
如何访问我的特定链接
答案 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
如果你想手动解析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);
})
);