Ich baue ein Anmeldeformular (Pass-Local als Authentifizierung, Formulare als Formularhelfer).
Da die Registrierung nur GET und POST kennt, möchte ich das gesamte Handling in einer Funktion durchführen.
Mit anderen Worten suche ich nach etwas wie:
exports.register = function(req, res){
if (req.isPost) {
// do form handling
}
res.render('user/registration.html.swig', { form: form.toHTML() });
};
Die Antwort war ziemlich einfach
exports.register = function(req, res) {
if (req.method == "POST") {
// do form handling
}
res.render('user/registration.html.swig', { form: form.toHTML() });
};
Ich habe aber lange im Express-Guide nach diesem Ansatz gesucht.
Schließlich enthält die Knotendokumentation detaillierte Informationen: http://nodejs.org/api/http.html#http_http_request_options_callback
Jetzt können Sie ein Paket in npm => "method-override" verwenden, das eine Middleware-Ebene bereitstellt, die die Eigenschaft "req.method" überschreibt.
Grundsätzlich kann Ihr Client eine POST -Anforderung mit einer geänderten "req.method", etwa /registration/passportID?_method=PUT
, senden.
Das
_ Methode = XXXXX
teil ist für die Middleware, um zu identifizieren, dass dies eine verdeckte PUT-Anforderung ist.
Der Ablauf sieht so aus, dass der Client eine POST -Anforderung mit Daten an Ihre Serverseite sendet und die Middleware die Anforderung übersetzt und die entsprechende "app.put ..." - Route ausführt.
Ich denke, das ist ein Weg des Kompromisses. Für weitere Informationen: method-override