i struggling node save post request mongodb, not getting errors thrown, nothing being stored in database.
modules.js
var mongoose = require ( 'mongoose' ), schema = mongoose.schema, modulesschema = new schema ( { moduleid: number, modulename: string, moduleleader: string }, { _id: false } ); module.exports = mongoose.model ( 'module', modulesschema );
server.js
var express = require ( 'express' ), app = express (), bodyparser = require ( 'body-parser' ), jwt = require ( 'jsonwebtoken' ), mongoose = require ( 'mongoose' ), mongouri = 'mongodb://feedbacker:feedbacker@ds011472.mlab.com:11472/feedbacker'; secretkey = 'f33db3ck4r'; // database in cloud mongoose.connect ( mongouri, function ( error ) { if ( error ) { console.error ( 'mongoose error! error: ', error ); } } ); // bodyparser read , post json data app.use ( bodyparser.urlencoded ( { extended: true } ) ); app.use ( bodyparser.json () ); // load models var user = require ( './models/user' ), student = require ( './models/student' ), module = require ( './models/modules' ); router.route('/module').post(function(req, res) { var module = new module(); module.moduleid = req.body.moduleid; module.modulename = req.body.modulename; module.moduleleader = req.body.moduleleader; module.save(function(err) { if (err) return res.send(err); res.json({ message: 'module created!' }); }); }); // register router app.use ( '/api', router );
i cut out chunk of server.js of middleware , other routes going on not affect this.
i have used postman test this, , not res.json message. if change routing too:
router.route('/module').post(function(req, res) { var module = new module(); module.moduleid = req.body.moduleid; module.modulename = req.body.modulename; module.moduleleader = req.body.moduleleader; module.save(function(err) { if (err) res.json({ message: 'module created!' }); }); });
this removing following line:
return res.send(err);
this indeed send response 'module created!' ... reason why happening? because getting no errors anywhere , nothing being stored. , yes database details setup correctly
any apprecaited.
ah turns out using _id false doesn't go down well, changed model to:
var mongoose = require ( 'mongoose' ), schema = mongoose.schema, modulesschema = new schema ( { _id: number, modulename: string, moduleleader: string } ); module.exports = mongoose.model ( 'module', modulesschema );
Comments
Post a Comment