2012-06-23 6 views
32

Ich erstelle ein Registrierungsformular (Pass-Local als Authentifizierung, Formulare als Formular-Helfer).Express.js HTTP-Methode in Controller

Da die Registrierung nur GET und POST kennt, würde ich gerne das ganze Handling in einer Funktion erledigen.

Mit anderen Worten: Ich bin auf der Suche nach so etwas wie:

exports.register = function(req, res){ 
    if (req.isPost) { 
     // do form handling 
    } 
    res.render('user/registration.html.swig', { form: form.toHTML() }); 
}; 

Antwort

61

Die Antwort war ganz einfach

exports.register = function(req, res) { 
    if (req.method == "POST") { 
     // do form handling 
    } 
    res.render('user/registration.html.swig', { form: form.toHTML() }); 
}; 

Aber ich suchte eine lange Zeit für diesen Ansatz in der ausdrücklichen Führung.

Schließlich wird der Knoten Dokumentation hat eine solche detaillierte Informationen: http://nodejs.org/api/http.html#http_http_request_options_callback

+5

Rechts. Es ist schade, dass das express.js-Dokument diese Dinge hier übersehen hat http://expressjs.com/api.html#req.params und es verweist nicht auf die Dokumentation der eingebauten NodeJS-Bibliothek, die wirklich notwendig ist. –

+4

Hallo, vielen Dank für diese Lösung. Für mich jedoch, um die Logik so funktionieren zu lassen, wie Sie sie dort aufgelistet haben, musste ich meine IF-Anweisung folgendermaßen machen: 'if (req.method! = 'GET')' – gnB