-1

I am new in Node.Js. I am trying to make simple API.

I want to save users into MongoDB. I get request as JSON. I have this route. But it doesn't work. How can I determine is jsonObject an object or array?

router.route('/users')
.post(function(req, res) {

    var jsonObject = req.body;


    if(!jsonObject.isArray){
        var user = new User();

        user.name = req.body.name;
        user.phone = req.body.phone;

        user.save(function (err) {
            if (err)
                res.send(err);

            res.json({message: 'User created!'});
        });
    }
    //Array of users
    else{
        for(var i = 0; i < jsonObject.length; ++i){
            var object = jsonObject[i];
            var user = new User();
            user.name = jsonObject[i].name;
            user.phone = jsonObject[i].phone;
            user.save(function (err) {
                if (err)
                    res.send(err);

                res.json({message: 'Users created!'});
            });
        }
    }
})
.get(function (req, res) {
    User.find(function (err, users) {
        if (err)
            res.send(err);

        res.json(users);
    });
});

I want to use this two types of requests:

{
"name": "ALONE",
"phone": "43141"
}

Array:

    [
  {
    "name": "User1",
    "phone": "43141"
  },

  {
    "name": "User2",

  }
]
Huitarheroherohero
  • 315
  • 1
  • 4
  • 11

1 Answers1

0

you could check for length

  • var x = ["foo", "bar"]; alert(x.length);
  • var y = {"foo":"bar"}; alert(y.length);

Or you parse the response to check if it a json at all: http://www.json.org/js.html

cheers, Jo

Joachim
  • 308
  • 1
  • 3
  • 10