2017-10-24 2 views
0

Ich habe POST und PUT, die sich auf die gleiche FORM bezieht. Wenn ich auf Submit-Button klicke, wird nur die POST-Anfrage verarbeitet (weil sowohl POST als auch PUT den gleichen Routennamen haben, der eine Aktion von FORM ist), Wie kann ich PUT implementieren?Put funktioniert nicht in Express-Js

//App.js

app.post('/addClassified',routes().saveClassified); -- POST 
app.put('/addClassified',routes().updateClassified); -- PUT 

app.get('/newClassified',function(req,res){ 
    res.render('newClassifieds'); //Rendering form 
}); 

// newClassifieds.pug

// Method and action of FORM 

form(method='POST' action='/addClassified') 
    button.btn.btn-primary(type='submit') Save 

//routes.js WEGE

// Speichern klassifiziert - POST

functions.saveClassified = function (req, res) { 
    console.log(req.body.category); 
}; 

// PUT - Update klassifiziert

functions.updateClassified = function (req, res) { 

}; 
+3

Mögliche Duplikat von [wie eine Put-Anfrage aus HTML-Formular in Express-und Knoten senden] (https://StackOverflow.com/Questions/12765431/How-to-Send-a-put- Anfrage-von-HTML-Formular-in-Express-und-Knoten) – MikaS

Antwort

1

Sie müssen wissen, dass HTML5 nur in Formen GET und POST ermöglicht so, wenn Sie Aktionen PUT implementieren müssen Sie diese Schritte ausführen können:

Wie kann ich umsetzen? 1.-Installieren Sie "Method-override" NPM-Paket. 2. Sie haben in Ihrem app.js so nennen:

`var methodOverride = require("method-override"); 
app.use(methodOverride("_method"))` 

3.-Add '_method = PUT' in Ihrer Aktion Form wie folgt aus:

form(method='POST' action='/addClassified/<%=thing._id%>?_method=PUT')

lassen Sie mich wissen, wenn Sie noch etwas brauchen

Verwandte Themen