I am following RESTful API series of Academind and I have added user signup but I am getting error of Cannot read property 'email' of undefined upon passing following json data by postman in raw format of json, everything of postman is configured as in the academind video.
{
"email" : "test@test.com",
"password" : "tester"
}
My routes/users.js look like this:
const express = require('express');
const router = express.Router();
const mongoose = require("mongoose");
const bcrypt = require("bcrypt");
const User = require("../models/user");
router.post('/signup', (res, req, next) => {
// console.log(req.body.email);
User.find({ email: req.body.email })
.exec()
.then(user => {
if ( user.length >= 1 ) {
return res.status(409).json({
message: 'Email already in use by some other user'
});
} else {
bcrypt.hash(req.body.password, 10, (err, hash) => {
if (err) {
return res.status(500).json({
error: err,
});
} else {
// console.log(req.body.email);
const user = new User({
_id: new mongoose.Types.ObjectId(),
email: req.body.email,
password: hash,
});
user
.save()
.then(result => {
console.log(result);
res.status(201).json({
message: "User Created Successfully",
});
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
}
});
}
});
});
module.exports = router;