插入导致 404 的行

Insert row causing 404

我已确认我的数据库和 table 设置正确,我正在尝试将一个元素插入到我的 'workouts' table.

我使用以下URL:

http://52.39.3.148:3000/insertWorkout?name=Tom&weight=166&date=12%2F12%2F12&lbs=123&reps=12

insertWorkout 处理程序:

app.post('/insertWorkout',function(req,res,next){
    var context = {};
    pool.query("INSERT INTO workouts (`name`,`weight`,`date`,`lbs`,`reps`) VALUES (?,?,?,?,?)", [req.body.name, req.body.weight, req.body.date, req.body.lbs, req.body.reps], function(err, result){
    if(err){
      next(err);
      return;
    }
    context.results = "Inserted id " + result.insertId;
    res.render('home',context);
  });
});

我做错了什么?

您运行是浏览器中的url吗?如果是这样,这是一个 http GET 请求,您的代码正在创建一个 POST 请求。

问题是 - 当您调用此请求时 - 您发送的所有参数(名称、重量、日期、磅、代表)都在 'req.query' 中发送,而不是在 'req.body' 中发送导致您所有的值都未定义。

如果你想保留它作为一个post请求,你应该把这个API称为一个post,我建议使用dhc这样的工具来这样做。

如果您想将其转换为 GET 请求 - 使用以下内容:

app.get('/insertWorkout',function(req,res,next){
    var context = {};
    pool.query("INSERT INTO workouts (`name`,`weight`,`date`,`lbs`,`reps`) VALUES (?,?,?,?,?)", [req.query.name, req.query.weight, req.query.date, req.query.lbs, req.query.reps], function(err, result){
    if(err){
      next(err);
      return;
    }
    context.results = "Inserted id " + result.insertId;
    res.render('home',context);
  });
});