フォームのデータを削除しようとしています。 GETメソッドとPUTメソッドは機能しますが、DELETEは機能しません。私の目標は、JS関数を使ってフォームPOSTメソッドを変更し、それを削除ボタンで呼び出すことです。データを消去することができます。しかし、それは動作していません。 HTML:Node.js/Express DELETEメソッドが機能しない
<form id="protest_form" action="scout_post" method="POST">
<input type="text" id="scoutName" name="scoutName" placeholder="name"> <br>
<input type="text" id="scoutSurname" name="scoutSurname" placeholder="surname"> <br>
<input type="text" id="scoutPassword" name="scoutPassword" placeholder="password"> <br>
<button type="submit" id="button" class="btn btn-primary">Submit</button>
<button type="button" id="button" class="btn btn-danger" onclick="deleteForm()">Delete</button>
</form>
JS機能:
function deleteForm() {
document.getElementById('protest_form').setAttribute("method", "delete");
document.getElementById('protest_form').submit();
}
とノードのルーティング:
app.post('/scout_post', urlencodedParser,function (req,res){
var name= req.body.scoutName,
surname=req.body.scoutSurname,
password=req.body.scoutPassword;
db.collection('scoutPost').insertOne(
{ 'name': name, 'surname': surname,'password':password},
function (err, r) {
assert.equal(null, err);
res.send("Document inserted with _id: " + r.insertedId);
}
);
})
app.delete('/scout_post', urlencodedParser,function (req,res){
var name= req.body.scoutName,
surname=req.body.scoutSurname,
password=req.body.scoutPassword;
db.collection('scoutPost').remove(
{ 'name': name, 'surname': surname,'password':password},
function (err, r) {
assert.equal(null, err);
res.send("Document deleted");
});
})
私はdeleteForm()関数を呼び出すボタンをクリックすると、私はこのエラーを取得します:
Cannot GET /scout_post?scoutName=&scoutSurname=&scoutPassword=
そして、もし私がH TMLとNodeルートをGETメソッドに渡すと、挿入されたドキュメントが表示され、DELボタンをクリックしても削除されません。どうすれば修正できますか?ありがとう
ok、ありがとう、なぜdownvote?私は問題の修正方法を尋ねましたが、これは問題ですね。 – glassraven
FWIW私は*あなたの質問をdownvoteしませんでした。 – mscdex
okしかし、ponuryの回答のdownvoteさえ公正ではない、時々私は本当にこれらの決定を理解していない... – glassraven