Javascript req.query导致空对象

Javascript req.query导致空对象,javascript,node.js,express,Javascript,Node.js,Express,req.query将导致一个空对象 我被重新路由到一个页面,该页面显示BAD_NULL_ER,因为name不能为NULL(因为我是这样设置模式的),但是当我刷新时,我试图插入的项实际上被添加到数据库中 这是请求 let req = new XMLHttpRequest(); let param = `name=${form.elements.name.value}&reps=${form.elements.reps.value}&weight=${form.el

req.query将导致一个空对象

我被重新路由到一个页面,该页面显示BAD_NULL_ER,因为name不能为NULL(因为我是这样设置模式的),但是当我刷新时,我试图插入的项实际上被添加到数据库中

这是请求

    let req = new XMLHttpRequest();

    let param = `name=${form.elements.name.value}&reps=${form.elements.reps.value}&weight=${form.elements.weight.value}&date=${form.elements.date.value}&lbs=${form.elements.lbs.value}`;

    req.open("POST", "/?" + param, true);
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    req.send("/?" + param);
这是路线

app.post('/', function (req, res, next) {
  console.log(req.query);
  var sql = "INSERT INTO workouts(`name`, `reps`, `weight`, `date`, `lbs`) VALUES(?, ?, ?, ?, ?)";
  connection.query(sql,
    [req.query.name, req.query.reps, req.query.weight, req.query.date, req.query.lbs],
    (err, rows, fields) => {
      if (err) {
        console.log(err);
        next(err);
        return;
      }
      res.send(JSON.stringify(rows));
    });
});

尝试添加到您的应用程序中。这是使用它最简单的方法。

您是否在express服务器中使用body parser pkg?是的,我使用body parser pkg-parser@Milad如果您注意到控制台,那么整个req.query都是空的,因此发生MySQL错误也就不足为奇了。或者它不是相应的日志语句?是。我注意到了。这就是我试图解决的问题。您可能会从浏览器中收到重复的请求,但其中一个请求为空(无查询)。如果(!req.query)返回,则应使用
来关闭逻辑。此外,此代码易受sql注入攻击,您应该清理输入!