Running multiple post requests in nodejs using for loop not working

Viewed 47

this is the signup route where the request is called

  User.register(new User({username: req.body.username}), 
    req.body.password, (err, user) => {
    if(err) {
      res.statusCode = 500;
      res.setHeader('Content-Type', 'application/json');
      res.json({err: err});
    }
    else {
      if(req.body.admin) {
        user.admin = req.body.admin;
      }
      if(req.body.hostel) {
        user.hostel = req.body.hostel;
      }
      user.save((err, user) => {
        if(err) {
          res.statusCode = 500; 
          res.setHeader('Content-Type', 'application/json');
          res.json({err: err});
          return;
        }
        passport.authenticate('local')(req, res, () => {
          res.statusCode = 200;
          res.setHeader('Content-Type', 'application/json');
          res.json({success: true, status: 'Registration Successful!'});
        });
      });
    }
  });
});

this snippet is from where the request is called.. I called the axios post inside a for loop to register multiple users from a csv file

const csv = require('csv-parser')
const fs = require('fs')
var axios = require('axios');
const results = [];

fs.createReadStream('data.csv')
    .pipe(csv())
    .on('data', (data) => results.push(data))
    .on('end', () => {
        //console.log(results);
       for(var i = 10; i <= 20; i++) {
        axios.post('http://localhost:3000/users/signup', 
        {
            password: results[i].DOB, 
            username: results[i].Sid,
            hostel: '5f37923011855135682d1ae8'
        })
        .then((res) => {
            console.log(`Status: ${res.status}`);
            console.log('Body: ', res.data);
        }).catch((err) => {
            console.error(err);
        });
       }

            
    });

when posting single data returns a success else server generates error code 500

0 Answers
Related