2016-04-28 5 views
0

Ich versuche, ein einfaches Registrierungsformular mit dem MEAN-Stack mit Mungo zu erstellen. Hier ist meine Modelle/dbSchema.jsMongoose-Schema speichert nicht alles in der Datenbank

var mongoose = require('mongoose'); 
 
var Schema = mongoose.Schema; 
 

 
var User = new mongoose.Schema({ 
 
    FirstName: String, 
 
    LastName: String, 
 
    City : String, 
 
    Email : String, 
 
    Userid : String, 
 
    Password: String 
 
    
 
}); 
 
module.export = mongoose.model('user', User);

und das ist mein server.js

var express = require('express'); 
 
var app = express(); 
 
var bodyParser = require('body-parser'); 
 
var jwt = require('jsonwebtoken'); 
 

 

 

 
app.use(express.static(__dirname + "/public")); 
 

 

 
// configure app to use bodyParser() 
 
// this will let us get the data from a POST 
 
app.use(bodyParser.urlencoded({ extended: true })); 
 
app.use(bodyParser.json()); 
 

 
var mongoose = require('mongoose'); 
 
mongoose.connect('mongodb://localhost/Regis_module'); 
 
var Userschema = require('./models/dbSchema'); 
 

 
app.post('/regi',function(req,res){ 
 
    var schema  = new Userschema(); 
 
    schema.Firstname  = req.body.Fname; 
 
    schema.Lastname  = req.body.Lname; 
 
    schema.City  = req.body.city; 
 
    schema.Email  = req.body.email; 
 
    schema.Userid  = req.body.userid; 
 
    schema.Password = req.body.password; 
 
     
 
    schema.save(function(err) { 
 
      if (err) 
 
       res.send(err); 
 

 
      res.json({ message: 'Record Inserted', Firstname: req.body.firstname, Lastname: req.body.lastname, city:req.body.city, email:req.body.email, 
 
         userid:req.body.userid, password :req.body.password /*, fbId : req.body.fbId*/ }); 
 
     }); 
 
     
 
    }); 
 
    
 
app.listen(3000); 
 
console.log("listening to port 3000");

auf localhost, bei der Zeit der Formularübergabe werden Vorname und Nachname nicht in der Datenbank gespeichert. Ort, E-Mail, Benutzerkennung und Passwort sind korrekt gespeichert.

Wie kann ich alles Ding in Datenbank richtig speichern, bitte helfen Sie mir?

+0

Stellen Sie sicher, erhalten Sie Vorname, Nachname von req.body korrekt? – Subburaj

+0

können Sie das HTML-Formular posten, nehme ich an, dass etwas nicht in Ordnung ist –

+0

das Problem könnte sein, dass Sie nicht die Werte von 'Fname' und' Lname' in Anfrage bekommen. Versuchen Sie, den req.body zu protokollieren und zu sehen, was gedruckt wird. –

Antwort

1

In den folgenden Zeilen von Code, den Sie req.body.Fname verwenden und req.body.Lname:

schema.Firstname = req.body.Fname; 
schema.Lastname = req.body.Lname; 

und in den nächsten Zeilen, die Sie req.body.firstname und req.body.lastname verwenden:

res.json({ message: 'Record Inserted', Firstname: req.body.firstname, Lastname: req.body.lastname, city:req.body.city, email:req.body.email, 
        userid:req.body.userid, password :req.body.password /*, fbId : req.body.fbId*/ }); 
    }); 

Wenn Ihr req.body Objekt die gleichen Schlüssel hat wie Ihr User Schema können Sie Mongoose Model.create Methode verwenden und einfach req.body übergeben.

Für Ihren Code, den Sie folgendes tun würde:

app.post('/regi', function(req,res) { 
//pass the .create method the data from the body 
    User.create(req.body, (err, savedUser) => { 
    if(err) return res.send(err); 
    res.send(savedUser); 
    }); 
}); 
:

  1. Bringen Sie die User-Modell in Ihre server.js Datei (let User = require('./models/dbSchema.js'))
  2. Dann wird Ihr app.post wie folgt aussehen würde