您好,我的问题是我想使用猫鼬的搜索查询。但是我想使用查询发出get请求。为什么不可能呢?我不明白这个错误。我正在使用猫鼬的5.10.0版本。 我不想将其作为发帖请求,也不想使用req.body。谁能帮我吗?
这是我的代码:
(property) $search: string
No overload matches this call.
The last overload gave the following error.
Type 'ParsedQs' is not assignable to type 'string'.ts(2769)
我的错误消息:
<template>
<v-combobox
clearable
v-model="values"
:items="items"
></v-combobox>
</template>
<script>
data () {
return {
items: [
{"id": 2, "name": "tree"},
{"id": 4, "name": "grass"},
{"id": 5, "name": "freeze"},
{"id": 9, "name": "moss"}
],
values: ''
}
}
</script>
答案 0 :(得分:0)
req.query
是一个包含请求查询的对象
因此,如果您像这样/?foo=bar&a=123
您可以从以下位置访问查询值
req.query.foo // bar
req.query.a // 123
您正在将查询对象传递给$search
,同时应该传递一个字符串,因此它应该是
Company.find({ $text: { $search: req.query.yourQueryKey as string } }).exec((err, docs) => {
答案 1 :(得分:0)
req.query
是一个对象,其中包含您在查询中指定的所有查询参数。
如果您的请求看起来像这样
test.com/search/?s=something
something
将存储在req.query.s
中。
第二个选项是使用named route parameters。 因此,您可以设置为:
请求网址
test.com/search/something
路线
app.get('/search/:search', (req, res) => {
console.log(req.params.search); // "something". NB use req.params, not req.query
})
答案 2 :(得分:0)
添加任意,如下所示可能对您有所帮助-
Company.find({ $text: { $search: req.query as any} }).exec((err, docs) => {
-------------
-------------
-------------