Javascript req.query导致空对象
req.query将导致一个空对象 我被重新路由到一个页面,该页面显示BAD_NULL_ER,因为name不能为NULL(因为我是这样设置模式的),但是当我刷新时,我试图插入的项实际上被添加到数据库中 这是请求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
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注入攻击,您应该清理输入!