Thursday, 16 March 2017

Accessing req.body values in express

I'm working on a REST API node/express app. For my 'signup' route, where a user uses the api to sign up for the service, it takes a POST'ed JSON object. Inside this function I want to check against the mongo db to make sure that this user doesn't already exist.

The problem is I need to get the username from the posted json information, but every attempt I have made has failed. The lines that attempt to log the req.body.username and req.body.password always return 'undefined'. What am I doing wrong?

Here's the code I have so far is below:

exports.signup = function(req, res) {

  // todo: somehow verify that username, password, email and phone number are all provided.
  // do not write into the collection unless we know all the information has been provided.
  // maybe access the JSON elements to make sure they are not null
  // todo: also make sure a record doesn't already exist for this uer

  var user = req.body;

  // need to get the username here somehow
  var JSONuser = JSON.stringify(user);
 // console.log('user: ' + user);
  console.log('userJSON: ' + JSON.stringify(user));
  console.log('username: ' + req.body.username);
  console.log('password: ' + req.body.password);

  db.collection('users', function(err, collection){
    //if ( collection.findOne({}) ) { // make sure the user doesn't already exist here
        collection.insert(user, {safe:true}, function(err, result){
          if(err){
            res.send({'error':'An error has occured'});
          } else {
            console.log('Success: ' + JSON.stringify(result[0]));
            res.send(result[0]);
          }
        })
    //}
  });
}



via user1250991

No comments:

Post a Comment