我正在嘗試使用貓鼬在 express.js 中創建一個用戶。我嘗試了一切,但我只得到姓氏和密碼,我不知道發生了什么。即使在 req.body.firstName 也有資料,但在 newUser 我只得到兩個值 lastName 和 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});
})
}
})
})
模型
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
uj5u.com熱心網友回復:
這是一個錯字。firtName應該firstName在您的模型中。嘗試這個:
const userModel = new Schema({
firstName: {
type: String,
required: true
},
...
})
編輯:
現在它顯示錯誤“ res.status is not a function”。
它顯示了該錯誤,因為該.save()函式不回傳帶有.status函式的物件。它回傳保存的檔案。
嘗試重命名
.save().then(res => { res.status(200)...
至
.save().then(savedDoc => { res.status(200)...
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/504023.html
標籤:javascript 节点.js 表示 猫鼬
