Search code examples
node.jsexpressmongooseaxiosexpress-session

Limited Post Request


I am making a form like where everytime user clicks an option a post request is send to server and it updates the database.In my case server is accepting only 6 post request. After it no request are responded. Also if I click back button and re-login those unresponded request are accepted.

route.js

const express = require('express');
const router = express.Router();
const mongoose = require('mongoose');
const { ensureAuthenticated } = require('../config/auth');
const async = require('async');
const times = require('../config/timer.json');

var User = require('../models/UG');
var Avail = require('../models/avail.js)


router.post('/schedule/add',(req,res)=>{
    console.log(req.body);
    User.findByIdAndUpdate({_id:req.user.id},{
        $push: 
            {times: 
                {
                    date:req.body.er2,
                    codes:req.body.er1
                }
            }
    },(err,user)=>{
        if(err) console.log(err);
        // else console.log(user);
    });


    var avail = new Avail();
    avail.userid = req.user.id,
    avail.date = req.body.er2,
    avail.codes = req.body.er1
    avail.save(function(err){
        if(err) console.log(err);
    })

    // console.log(req.query);
})


router.post('/schedule/remove',(req,res)=>{
    console.log(req.body+'remove');
    User.findByIdAndUpdate({_id:req.user.id},{
        $pull: 
            {times: 
                {
                    date:req.body.er2,
                    codes:req.body.er1
                }
            }
    },(err,user)=>{
        if(err) console.log(err);
        // else console.log(user);
    });

    Avail.deleteMany({userid:req.user.id,
        date : req.body.er2,
        codes : req.body.er1 }, function (err) {
            if(err) console.log(err)
        });
})





module.exports = router;

client.js

function addtime(){
    // console.log(this.getAttribute('data-id'))
    console.log('add');
    this.classList.add('active');
    var er1 = this.getAttribute('data-id');
    var er2 = this.getAttribute('data-date');


  axios({
    method: 'post',
    url: '/ugdashboard/schedule/add',
    data: {
      er1: er1,
      er2: er2
    }
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });
}

P.S: This is my first question so please pardon question structure and mistakes


Solution

  • You are not ending the requests. You need to call res.end() within your post handler.