Alex M.
Alex M.

Reputation: 361

Get request from client to Node server with objects

How do I send an object from the client to the Node server.

My Object looks like this:

var myobj = {};
myobj.title = "title1";
myobj.message = "message1";

I simply want to send it to the server to save it to the database with mongoDB. But when I try to send it and look at the request, only unreadable text comes out.

This is the code on the client:

$.get( '/createA',myobj, function(data) {
   console.log(JSON.parse(data));
});

This is my server code:

router.get('/createA', function(req, res, next) {
   let gelp = req._parsedOriginalUrl.query;
   let res1 = gelp.replace(/%22/g, "'");
   var test = JSON.parse(res1);
});

I tried to format the string with the .replace() function and parse it back to JSON but it doesn't work.

Is there any other way I can get an object from client side JavaScript to Node and work with that object there?

Upvotes: 0

Views: 164

Answers (1)

Matt Pengelly
Matt Pengelly

Reputation: 1596

see: https://api.jquery.com/jquery.post/

also just console.log or do res.send('it worked!') to test these things out for the first time instead of trying to modify things before you know the backend is receiving it.

$.post("/createA", myobj, function( data ) {
  console.log( data.title );
  console.log( data.message ); 
}, "json");

and try this first.

router.post('/createA', function(req, res) {
  res.send('it worked!')
});

after that works, you can try to modify and send back the object. like so

router.post('/createA', function(req, res) {
  var data = {}
  data.title = req.body.title.toUpperCase()
  data.message = req.body.message.toUpperCase()
  res.send(data)
});

Upvotes: 1

Related Questions