Mongoose 模式未将所有内容存储在数据库中

Mongoose schema is not Storing all thing in database

我正在尝试使用猫鼬使用 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");

在本地主机上,在提交表单时,名字和姓氏不会存储在数据库中。城市、电子邮件、用户 ID 和密码已正确存储。

如何才能正确地将所有内容存储在数据库中,请帮助我?

在下面的代码行中,您使用 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);
      });
    });