when I send a request using a form, the body object does not contain the email value required..
for example when I use postman:
this error is a Schema error, because the email is not coming through....
I have tried to parse the headers using bodyparser, but no luck..
but when I send it using raw JSON it works fine:
my root server route:
const express = require('express');
const app = express();
const mongoose = require('mongoose');
var cors = require('cors');
app.use(cors());
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
next();
});
// parse body on every request //
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use('/api/post', require('./routes/postRoute'));
app.use('/api/users', require('./routes/usersRoute'));
// root home page
app.get('/', (req, res) => {
res.send('hi, love you ok? bye');
});
// connect to DB //
mongoose
.connect('mongodb://localhost:27017/Express_Sessions_Wireframe', {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true
})
.then(console.log('We have touchdown houston [DATABASE HAD CONNECTION]'))
.catch((err) => console.log(err));
// listen to server
app.listen(3000, () => {
console.log('roger roger [server listening]');
});
my user Schema :
let User = new Schema(
{
email: {
type: String,
required: true,
unique: true
},
posts: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Post'
}
]
},
{
timestamps: true
}
);
module.exports = mongoose.model('User', User);
my post route
const express = require('express');
const User = require('../models/userModel');
var router = express.Router();
// parse json to use in all requests got or sent by router .. which is provided by express
router.use(express.json());
// User can signUp for an account
router.post('/signup', (req, res, next) => {
User.create({
email: req.body.email
})
.then(
(user) => {
res.statusCode = 200;
console.log( 'Registration Successful!', `user ====== ${user}` )
res.setHeader('Content-Type', 'application/json');
res.json({ status: 'Registration Successful!', user: user });
},
(error) => next(error)
)
.catch((err) => next(err));
});
module.exports = router;