Tuesday, 11 April 2017

How can I access my req.body data/json in Express?

I am new to node.js and I am trying to access json on my node.js server from a post request so I can send it to an API and feed it back to my front-end js file. I can see the json object, but I can't seem to access it(ex: req.body.name) after reading some documentation/stackoverflow posts.

Here is my post route from my server.js file, and packages:

    var prettyjson = require('prettyjson');
    var express = require('express');
    var http = require('http');
    var cors = require('cors');
    var bodyParser = require('body-parser');
    var app = express();


    // create application/json parser 
    app.use(bodyParser.json());
    // create application/x-www-form-urlencoded parser 
    app.use(bodyParser.urlencoded({
        extended: true
    }));

    app.post('/', function(req, res) {

    var test = req.body; //If I req.body.name here, it will return undefined
    console.log(test);

    });

Here is my front end map.js file post function and data:

  var locations = [
  {name:'Le Thai', coords:{lat:36.168743, lng:-115.139866}},
  {name:'Atomic Liquors', coords:{lat:36.166782, lng:-115.13551}},
  {name:'The Griffin', coords:{lat:36.168785, lng:-115.140329}},
  {name:'Pizza Rock', coords:{lat:36.17182, lng:-115.142304}},
  {name:'Mob Museum', coords:{lat:36.172815,lng:-115.141242}},
  {name:'Joe Vicari’s Andiamo Italian Steakhouse', coords:{lat:36.169437, lng:-115.142903}},
  {name:'eat', coords:{lat:36.166535, lng:-115.139067}},
  {name:'Hugo’s Cellar', coords:{lat:36.169915, lng:-115.143861}},
  {name:'Therapy', coords:{lat:36.169041, lng:-115.139829}},
  {name:'Vegenation', coords:{lat:36.167401, lng:-115.139453}}

  ];
   //convert array to JSON 
   var jsonStr = JSON.stringify(locations);

   $.post('http://localhost:3000/', jsonStr, function(data){
     //empty for now

   },'json'); 

End goal: I want to be able to access my data like req.body.name. I tried using typeof on req.body, and it returns an object, however I can't seem to access this object. And I tried using JSON.parse, but realized req.body is already an object. I would like to serve this data to the Yelp API eventually.



via Dream_Cap

No comments:

Post a Comment