Reputation: 245
I'm a beginner with nodejs and express. I'm trying to use postman's POST method but no data is getting sent. Here is my code
var express = require('express');
var userRouter = express.Router();
var userModel = require('../models/usermodels');
userRouter.route('/users')
.post(function(req,res) {
var users = new userModel(req.body);
users.name = req.body.name;
users.age = req.body.age;
users.save();
res.status(200).send(users)
})
Model
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UsersSchema = new Schema({
name:String,
age:Number
});
var model = mongoose.model('Users',UsersSchema);
module.exports = model;
Where is my error?
Upvotes: 0
Views: 967
Reputation: 2281
You must make sure that you define all configurations BEFORE defining routes.I think you define after and it's reason why not work . If you do so, you can continue to use express.bodyParser().
Upvotes: 1
Reputation: 812
Use debugging using console.log and also use error callback on save
Also use x-www-form-urlencoded (Content type) option when sending data from postman
var express = require('express');
var userRouter = express.Router();
var userModel = require('../models/usermodels');
userRouter.route('/users')
.post(function(req,res) {
//check here if request receive
console.log("requessssssssssssssssssss");
//check the data receive
console.log("dataaaaaaaaaaaaaa", req.body);
var users = new userModel(req.body);
users.name = req.body.name;
users.age = req.body.age;
//check if any error
users.save(function(saveError){
if(saveError){
return res.status(400).send(saveError)
}else{
res.status(200).send(users)
}
});
})
Upvotes: 0