2017-12-05 2 views
0

Guten Abend, ich bin derzeit einfach auf der Suche nach Node und ein kleines Projekt zu erstellen. Ich habe ein Problem, das ich nicht ganz lösen kann. Ich habe ein Express-Backend, das Routen enthält, diese Routen funktionieren gut im Postboten, aber wenn sie über die Mops-Vorlage eingefügt werden, scheinen die Details aus dem Formular nicht durchzugehen. Es ist so, als würde die Mops-Vorlage die Attribute nicht aus dem Formular sammeln, und sie sendet über den Validierungsfehler 'Muss Vornamen usw. benötigen'. Dies ist auch das erste Mal, dass ich PUG benutze, daher würde jede Hilfe (oder vielleicht ein Hinweis auf Dummheit) sehr geschätzt werden.Mops Vorlagen mit Node Express - Probleme mit POST

Für Routen:

//Register new user 
router.post('/register', function(req,res,next){ 
    user.create(req.body).then(function(user){ 
     res.send(user); //new instance and save 
    }).catch(next); 
}); 

Für PUG Vorlage:

extends layout 
block content 
     h1 Sign Up 
     form#addUser(name="adduser",action='api/register', method='POST') 
     label(for='firstName') First Name 
     input#users.firstName(type='text' placeholder='firstName' name='firstName') 
     div.form-group 
      label(for='lastName') Last Name 
      input#users.lastName(type='text' placeholder='lastName' name='lastName') 
      div.form-group 
      label(for='userName') UserName 
      input#users.userName(type='text' placeholder='userName' name='userName') 
      div.form-group 
      label(for='password') Password 
      input#users.password(type='password' placeholder='password' name='password') 
      div.form-group 
      label(for='email') Email 
      input#users.email(type='text' placeholder='email' name='email') 
     div.form-group 
      label(for='jobTitle') Job Title 
      input#users.jobTitle(type='text' placeholder='jobTitle' name='jobTitle') 
     button(type='submit', value='add') SignUp 

Benutzermodell:

const UserSchema = new Schema({ 
    userName: { 
     type: String, 
     unique: true, 
     required:[true, "Username is required"] 
    }, 
    password: { 
     type: String, 
     required: [true, "Password is required"] 
    }, 
    email: { 
     type: String, 
     required: [true, "Email is required"] 
    }, 
    firstName: { 
     type: String, 
     required:[true, "Name field is required"] 
    }, 
    lastName: { 
     type: String, 
     required: [true, "Name field is required"] 
    }, 
    jobTitle :{ 
     type: String, 
     required: [true, "Position is required"] 
    } 
}); 

const User = mongoose.model('users', UserSchema); 

module.exports = User; 

Ausgang Fehler:

„Benutzer-Validierung fehlgeschlagen: jobtitle: Position erforderlich ist, nachName: Name ist erforderlich, Vorname: Name Feld ist erforderlich, E-Mail: E-Mail erforderlich ist, Passwort: Passwort erforderlich ist, Benutzername: Der Benutzername ist erforderlich“

Antwort

0

Sind verwenden Sie Sequelize, um Ihre Daten zu speichern? Versuchen Sie, Ihre Formulareingaben mit Ihrem Benutzermodell wie folgt zu vergleichen:

Ist auch Ihr Router mit Ihrem Controller verbunden?