2016-05-30 1 views
0

Я проверил, что моя база данных и таблица настроены правильно, и я пытаюсь вставить элемент в таблицу «тренировок».Вставить строку, вызывающую 404

Я использую следующий 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); 
    }); 
}); 

Что я делаю неправильно здесь?

ответ

0

Вы используете URL-адрес браузера? если это так, это HTTP-запрос GET, и ваш код создает запрос POST.

Проблема заключается в том, что при вызове этого запроса все параметры, которые вы отправляете (имя, вес, дата, фунты, повторы), отправляются в 'req.query', а не в 'req.body', что вызывает все ваши значения будут неопределенными.

Если вы хотите сохранить его в качестве почтового запроса, вы должны назвать этот API в качестве сообщения, я предлагаю использовать такой инструмент, как 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); 
    }); 
}); 
Смежные вопросы