Ich arbeite an einem wirklich grundlegenden Registrierungsformular in Node.js (mit Express), und ich versuche, die einfachste Möglichkeit zu finden, grundlegende Formularvalidierung bereitzustellen. Ich bin mit "Express-Validator" gegangen, was einen guten Job zu machen scheint. Mein Ziel ist es jedoch, alle erforderlichen Validierungsnachrichten anzuzeigen und die vom Benutzer eingegebenen Werte zu belassen.
Es scheint, dass die Anforderungsinformationen nicht zurück in den res.render gelangen, was ich für sinnvoll halte. Ich habe jedoch überall nachgedacht, wo ich denken kann, und ich kann keine Referenz finden, die beschreibt, wie Formularfelder nach dem Anzeigen von Fehlermeldungen gefüllt werden.
Unten ist ein kleiner Ausschnitt, der meinen Ansatz beschreibt:
%Vor%Leider müssen Sie das Formular manuell neu füllen. Wenn Sie Seitenfehler erhalten, geben Sie die Formularwerte an die Ansicht zurück.
%Vor%Aus Ihrer Sicht würden Sie eine einfache Überprüfung durchführen, um festzustellen, ob es sich um Fehler handelt, und entsprechend neu füllen. Sie müssten verfolgen, welche Fehler für jedes Formularfeld erzeugt werden.
%Vor%Ein weiterer beliebter Weg ist, Ihr Formular über Ajax an den Server zu senden und alle Ihre Validierungen durchzuführen. Wenn ein Fehler auftritt, bleiben die eingegebenen Formulardaten erhalten und Sie würden den Fehler anzeigen, ansonsten nach der erfolgreichen Anmeldung umleiten. Im Folgenden finden Sie ein Beispiel für die Übermittlung eines Formulars mit Javascript.
%Vor%Es gibt einen einfachen Weg, den Sie verwenden
%Vor%Sie können req.body
verwenden %Vor%Und ich bin mir nicht sicher, welche Vorlagensprache Sie verwenden, aber Sie könnten etwas wie ..
tun %Vor%Dies gibt dann die gute Eingabe zurück, wenn ok oder die schlechte Eingabe, wenn es korrigiert werden muss.
Sie können dies mit connect-flash
Im Folgenden sind die Code-Snippets in verschiedenen Dateien aufgeführt, um die vom Benutzer eingegebenen Werte wieder in Form zu bringen, wenn Validierungen während der Registrierung mit dem Pass fehlschlagen.
Führen Sie den folgenden Befehl aus, um ein neues Paket in package.json
einzufügen %Vor%app.js
%Vor%config / pass.js (Bitte konzentrieren Sie sich auf das Laden von Formulardaten in Flash)
%Vor%routes / index.js (Bitte konzentrieren Sie sich auf Formulardaten im Flash, die wieder in eine Variable geladen werden)
%Vor%views / signup.hbs (Bitte konzentrieren Sie sich auf die Werte in den Eingabeelementen)
%Vor%Hoffe, das hilft.
Setzen Sie eine Variable für alle Eingaben, zum Beispiel
%Vor%und übergeben Sie diese Variable dann an die Ansicht
%Vor%dann in Ihrer Sicht
%Vor%Wenn Sie jade und form Validator von npm verwenden, ist der beste Teil, dass Sie eine if-Anweisung in jade und dann einfach überprüfen können, ob Fehler dann mit res.render wir die Objekte auch senden. Siehe hierzu
%Vor%Und in Jade tust du das
%Vor%Wenn also ein Fehler vorliegt, wird der Wert auf eine Variable im Namen gesetzt, die beim Zurücksenden wiedergegeben wird
Ich denke, Sie können auch in Angular2 / Angular.js
getan werdenTags und Links node.js express validation