I’m trying to singin with existing user but it shows Cannot POST /api/signin
. The same works with signup process and I did cross check the signin route but couldn’t find where exactly the issue occurs.
signin code:
exports.signin = (req,res) => { User.findOne({email:req.body.email}) .exec((error,user) => { if(error) return res.status(400).json({error}); if(user){ if(user.authenticate(req.body.password)){ const token = jwt.sign({_id: user._id},process.env.JWT_SECRET,{expiresIn:'1h'}) const {firstName,lastName,email,role,fullName} = user; res.status(200).json({ token, user:{ firstName,lastName,email,role,fullName } }) } else { return res.status(400).json({ message:"Invalid Password" }) } }else{ return res.status(400).json({ message:"Something went wrong!" }) } }) }
router : router.get('/signin',signin)
app: app.use('/api',authRoutes);
Tried calling postman with : localhost:2000/api/signin
but dint work.
The same route pattern for signup worked localhost:2000/api/signup
Advertisement
Answer
It seems like you are doing a post
request while in your router
you are handling a get
. Change it to this :
router.post('/signin',signin)