Mongoose模式不存储数据库中的所有内容

时间:2016-04-28 05:29:51

标签: angularjs node.js mongodb mongoose mean-stack

我正在尝试使用mongoose使用MEAN堆栈创建一个简单的注册表单。这是我的 models / dbSchema.js



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);




这是我的 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");




在localhost上,在表单提交时,Firstname和Lastname不存储在数据库中。城市,电子邮件,用户ID和密码都存储正确。

如何正确存储数据库中的所有内容请帮帮我?

1 个答案:

答案 0 :(得分:1)

在以下代码行中,您使用req.body.Fnamereq.body.Lname

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

在下一行中,您使用req.body.firstnamereq.body.lastname

 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*/ });
    });

如果您的req.body对象与您的User架构具有相同的密钥,则可以使用mongoose的Model.create方法并将其传递给req.body

对于您的代码,您将执行以下操作:

  1. 将用户模型带入您的server.js文件(let User = require('./models/dbSchema.js')
  2. 然后您的app.post将如下所示:

    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);
      });
    });