2016-05-30 7 views
0

自分のデータベースとテーブルが正しく設定されていることを確認しましたが、私の「ワークアウト」テーブルに要素を挿入しようとしています。 insertWorkoutハンドラ行を挿入する404

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

私は、次のURLを使用

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.body'ではなく 'req.query'で送信されますすべての値は未定義です。

投稿リクエストとして保存したい場合は、この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); 
    }); 
});