You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React应用无法向Node.js服务器传递搜索参数,变量未定义报错

问题解决:GET请求下参数未定义的原因及修复

核心问题:GET请求没有请求体(body),你还在从req.body里取name参数,自然会显示未定义——GET的参数都是通过URL查询字符串传递的,得从req.query里拿。

修复步骤:

  1. 修改Node.js端代码,从req.query获取参数
    把原来的let {name} = req.body替换成let {name} = req.query,同时建议增加参数校验避免报错:
app.get('/search/', (req, res) => {
  // 从URL查询字符串中获取name参数
  let {name} = req.query;
  
  // 校验参数是否存在,防止后续拼接出错
  if (!name) {
    return res.json({error: '请传入name参数'});
  }

  var Op = name + '%';
  const q = "SELECT * FROM taric where Description LIKE ? ";
  con.query(q, [Op], (err, search) => {
    if (err) {
      console.log(err);
      return res.json(err);
    }
    console.log(search);
    return res.json(search);
  });
});
  1. 确认前端axios GET请求的传参方式
    GET请求要把参数放在params字段里,示例:
// 假设searchValue是搜索框输入的内容
axios.get('/search/', {
  params: {
    name: searchValue
  }
})
.then(res => {
  console.log('查询结果:', res.data);
})
.catch(err => {
  console.error('请求出错:', err);
});

额外提醒:

  • GET参数会暴露在URL里,别用来传敏感数据
  • 一定要做参数校验,不然如果用户没传name,会导致SQL查询出现undefined%这类无效值,引发错误

内容的提问来源于stack exchange,提问作者manish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:45:31