【发布时间】:2022-01-04 09:28:50
【问题描述】:
我是 MERN 的新手。如果电子邮件或姓名已经存在,我想打印 USER ALREADY EXIST。我使用了 .find 方法,但它不起作用。这是代码
const { response } = require('express')
const express = require('express')
const router = express.Router()
const mongoose = require('mongoose')
const User = mongoose.model("User") 'defined in user.js'
const bcrypt = require('bcryptjs')
router.post('/signup',(req,res)=>{
const {name,email,password} = req.body
if(!email || !password || !name){
return res.status(422).json({"error":"please add all the fields"}) //status 422 means server has understood the request but cant proess
}
User.find({email : email, name : name}).then((savedUser)=>{
if(savedUser){
return res.status(422).json({error:"user already exist."})
}
bcrypt.hash(password,6).then(hashedpassword=>{
const user = new User({
email, //is also written as "email" : email
password:hashedpassword,
name
})
user.save().then(user=>{
res.json({message:"saved sucessfully"})
}).catch(err=>{
console.log(err)
})
}) /
}).catch(err=>{
console.log(err)
})
})
module.exports = router;
【问题讨论】:
-
你遇到了什么错误?
-
User.find({email : email, name : name})仅当文档中的姓名和电子邮件完全匹配时才会匹配。这是故意的吗?
标签: javascript mongodb express mongoose mern