javascript - Ajax post request seems to work except data isn't saved in the database -


i'm trying ajax post request aws postgresql database on submitting form. jquery script seems correctly extracts data form, creates data object, , queries database. when connect aws instance via psql , run select * "users";, table empty. confusingly, have other tables running same code , requests correctly post data database.

the html/jade (adduser.jade)

extends layout  block content     #page-wrapper          .container              h2 add user              br              form(id='adduserform')                 .form-group                     label(for='givenname') first name                     input(type='text', class='form-control', id='givenname')                 .form-group                     label(for='surname') last name                     input(type='text', class='form-control', id='surname')                   .form-group                     label(for='phonenumber') phone number                     input(type='text', class='form-control', id='phonenumber')                 .form-group                     label(for='email') email                     input(type='email', class='form-control', id='email')                 .form-group                     label(for='address') address                     input(type='text', class='form-control', id='address')                  h5                      strong notes                 textarea(id='notes' type='text' class='form-control', rows='5')                 br                     button(type='submit', class='btn btn-default') submit      script.         $(document).ready(function() {              $('#adduserform').submit(function(event) {                 event.preventdefault();                 var givenname = $('input[id="givenname"]').val();                 var surname = $('input[id="surname"]').val();                 var phonenumber = $('input[id="phonenumber"]').val();                 var email = $('input[id="email"]').val();                 var address = $('input[id="address"]').val();                 var notes = $('textarea[id="notes"]').val();                  $.ajax({                     type: 'post',                     contenttype: 'application/x-www-form-urlencoded; charset=utf-8',                     url: '/api/users/',                     data: {                         givenname: givenname,                         surname: surname,                         phonenumber: phonenumber,                         email: email,                         address: address,                         notes: notes                     },                     success: function() {                         console.log('posted user ' + givenname + ' ' + surname + ' db.');                     }                 });                  $('#adduserform').trigger('reset');              });         }); 

adduser.js

var models = require('../models'); var express = require('express'); var router = express.router();  router.get('/', function(req, res, next) {     res.render('adduser', { user: req.user.givenname });  });  module.exports = router; 

the post request handler (user.js)

var express = require('express'); var router = express.router(); var user = require('../models').sequelize.models.user;  router.post('/', function(req, res) {      return user.create({          givenname: req.body.givenname,         surname: req.body.surname,         phonenumber: req.body.phonenumber,         email: req.body.email,         ownerid: req.user.customdata._id,         notes: req.body.notes      }, {         returning: true     })     .then(function(user) {         res.send(user);     })     .catch(function(err) {         res.send(err);     });; }); 

app.js

var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieparser = require('cookie-parser'); var bodyparser = require('body-parser');  // include routes var mainpage = require('./routes/mainpage'); var adduser = require('./routes/adduser'); var users = require('./routes/user');  var app = express();  // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade');  app.use(favicon(__dirname + '/public/favicon.ico')); app.use(logger('dev')); app.use(bodyparser.json()); app.use(bodyparser.urlencoded({ extended: false })); app.use(cookieparser()); app.use(express.static(path.join(__dirname, '/public')));  // routes app.use('/', mainpage); app.use('/adduser', adduser); app.use('/api/users', users);  // catch 404 , forward error handler app.use(function(req, res, next) {   var err = new error('not found');   err.status = 404;   next(err); });  module.exports = app; 

what happens in console when submit form

executing (default): insert "users" ("id","givenname","surname","phonenumber","email","ownerid","notes","updatedat","createdat") values (default,'gandalf','grey','911','gmail@yahoo.com','6lzineznk4n0g60tw21eve','lorem ipsum dolor','2015-07-07 20:38:45.096 +00:00','2015-07-07 20:38:45.096 +00:00') returning *;

post /api/users/ 200 2945.195 ms - 1488

output psql query

dbname=> select * "users";

id | givenname | surname | phonenumber | email | ownerid | notes | createdat | updatedat ----+-----------+---------+-------------+-------+---------+-------+-----------+----------- (0 rows)

so using sequelize node.js orm postgresql. changed name of field in user schema user table in database using old name when sent post request, sequelize couldn't recognize field. had drop table , restart app in order recreate table new name.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -