Node.js 你能帮我照看一下那个schenario吗
从尝试新事物的想法来看,我的项目有两个角色。所以我在数据库中创建了一个表“clinicid”,其中包含staffid和doctorid属性。当有人登记的时候。此人需要在clinicid集合中输入与staffid或doctorid相等的代码。如果该代码与医生id匹配,则应打开医生仪表板和员工仪表板,然后打开员工仪表板。 我正在用mongodb和前端做节点js。我只需要一个代码来帮助我解决这个问题。请兄弟,这将是非常优雅的。非常感谢。 下面是我在NodeJS中注册和登录的代码。 简而言之,当用户尝试使用用户名、密码和代码注册时。该代码应与具有staffid或docid的clinic id的数据库集合相匹配。如果我做错了,你能给我一些不同的建议吗Node.js 你能帮我照看一下那个schenario吗,node.js,reactjs,authentication,Node.js,Reactjs,Authentication,从尝试新事物的想法来看,我的项目有两个角色。所以我在数据库中创建了一个表“clinicid”,其中包含staffid和doctorid属性。当有人登记的时候。此人需要在clinicid集合中输入与staffid或doctorid相等的代码。如果该代码与医生id匹配,则应打开医生仪表板和员工仪表板,然后打开员工仪表板。 我正在用mongodb和前端做节点js。我只需要一个代码来帮助我解决这个问题。请兄弟,这将是非常优雅的。非常感谢。 下面是我在NodeJS中注册和登录的代码。 简而言之,当用户尝试
router.post('/register' ,( req,res,next)=>{
let {username,password,code}= req.body;
User.find({ username})
.then(user =>{
if(!user){
throw new Error('User already exist');
}
bcrypt.hash(password,10, (err,hash)=>{
if (err) return next(err);
User.create({username, password: hash,code})
.then(user =>{
res.json({status:"Signup success"});
}).catch(next);
})
}).catch(function(err){
next(err)
}
);
});
router.post('/login',(req,res,next)=>{
const {username, password,} = req.body;
User.findOne({username})
.then((user)=>{
if(!user){
let err = new Error('User does not exist');
err.status=400;
return next(err);
}
bcrypt.compare(password, user.password)
.then((isMatched)=>{
if (!isMatched){
let err = Error('Password doesnot match');
err.status=400;
return next(err);
}
const payload ={
id:user.id,
username:user.username,
role:user.role
}
jwt.sign(payload, process.env.SECRET,{expiresIn: '3hr'},(err, token)=>{
if (err) return next(err);
res.json({message:'Login successfull', token});
})
})
}).catch(next);
})