简体   繁体   中英

How can create user in express.js using mongoose

I am trying to create a user in express.js using mongoose. I tried everything but i only get lastName and password i don't know what happened. even in req.body.firstName also have data in but in newUser i only get two value lastName and password

let newUser = new User({
  firstName: req.body.firstName,
  lastName: req.body.lastName,
  email: req.body.email,
  password: req.body.password,
  phone: req.body.phone,
})

bcrypt.genSalt(10, (err, salt) => {
  bcrypt.hash(newUser.password, salt, (err, hash) => {
    if (err) {
      res.status(500).json({ error: err});
    } else{
      newUser.password = hash;
      newUser.save()
       .then(res => {
         res.status(200).json({ message: 'Successfullt created'   })
      })
      .catch((err) => {
        res.status(500).json({ error: err});
      })
   }
 })

})

Model

const mongoose = require('mongoose')
const { Schema } = mongoose

const userModel = new Schema({
   firtName: {
     type: String,
     required: true
   },
   lastName: {
     type: String,
     required: true
   },
   email: {
     type: String,
     required: true
   },
   password: {
     type: String,
     required: true
   },
   phone: {
     type: Number,
     required: true
   }

})

User = mongoose.model('User', userModel)
module.exports = User

This is a typo. firtName should be firstName in your model. Try this:

const userModel = new Schema({
   firstName: {
     type: String,
     required: true
   },
   ...
})

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM