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.