Node.js 搜索未正确筛选

Node.js 搜索未正确筛选,node.js,reactjs,api,filter,Node.js,Reactjs,Api,Filter,我有麻烦,要执行过滤,当我搜索一个词时,数据库中的所有产品都会出现,你能帮我一下吗 我的后端的一部分: 部分正面 import SearchInput from './SearchInput'; import api from '../../services/api'; export default function Example(){ const [product, setProduct] = useState([]); const [text, setText] = u

我有麻烦,要执行过滤,当我搜索一个词时,数据库中的所有产品都会出现,你能帮我一下吗

我的后端的一部分:

部分正面

import SearchInput from './SearchInput';
import api from '../../services/api';

export default function Example(){
    const [product, setProduct] = useState([]);
    const [text, setText] = useState('');

    useEffect(()=>{
        if(text){
            api.get(`/product?filter[productName]=${text}`)
                .then((response) =>  {
                    const products = response.data;
                    setProduct(products);
                })
            
        }
    },[text]);

    return(
        <div className="App">
            <h1>Pesquisa de produtos</h1>
            <SearchInput value={text} 
                onChange={(search) => setText(search)}
            />
            {product &&  (
                <ul>
                    {product.map(product=>(
                        <li key={product.id}>
                            {product.productName}
                        </li>
                    ))}
                </ul>
                
            )}
        </div>
    )
}
从“/SearchInput”导入SearchInput;
从“../../services/api”导入api;
导出默认函数示例(){
const[product,setProduct]=useState([]);
const[text,setText]=useState(“”);
useffect(()=>{
如果(文本){
api.get(`/product?过滤器[productName]=${text}`)
。然后((响应)=>{
const products=response.data;
setProduct(产品);
})
}
},[正文];
返回(
普罗杜托斯酒店
setText(搜索)}
/>
{产品&&(
    {product.map(product=>(
  • {product.productName}
  • ))}
)} ) }
搜索时的站点视图:


对于视图筛选结果,您可以根据
文本的值在渲染
产品
时使用条件渲染。看起来您的后端只是返回数据库中的所有结果,它不会使用您从前端发送的筛选器来仅获取所需的记录。您的后端应该这样做,否则在endpoint@Jayce444那么会发生什么呢,我用这个部分,向我展示网站主要部分的产品列表,但是我不知道我是否需要为过滤器创建一个单独的异步函数。@Ramayana3我不清楚他说如何渲染产品的方式。