Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Node.js how to read json data from request?

I have a server as following:

app.post('/', function(req, res, next) {
   console.log(req);
   res.json({ message: 'pppppppppppppssssssssssssss ' });   
});

The request is sent from a client as:

$.ajax({
    type: "POST",
    url: self.serverURI,
    data: JSON.stringify({ "a": "128", "b": "7" }),
    dataType: 'json',
    success: function (result) {
        console.log(result);
    },
    error: function (xhr, ajaxOptions, thrownError) {
        console.log(xhr);
    }
});

so far the connection fine.

My problem is in the server:

console.log(req);

where I want to read the data I sent. How can I read { "a": "128", "b": "7" } from req?

like image 794
arslan Avatar asked Dec 18 '16 18:12

arslan


People also ask

How can I get data from JSON?

Any JSON data can be consumed from different sources like a local JSON file by fetching the data using an API call. After getting a response from the server, you need to render its value. You can use local JSON files to do an app config, such as API URL management based on a server environment like dev, QA, or prod.


1 Answers

Although you're not mentioning it, your code looks like it's written for an Express environment. My answer is targeted to this.

Make sure to use body-parser for Express. In case, your project depends on some generated boilerplate code, it's most likely already included in your main server script. If not:

var bodyParser = require('body-parser');
app.use(bodyParser.json());

Installation with npm: npm install body-parser --save

The parsed JSON can then be accessed through req.body:

app.post('/', function(req, res, next) {
    console.log(req.body); // not a string, but your parsed JSON data
    console.log(req.body.a); // etc.
    // ...
});
like image 81
qqilihq Avatar answered Oct 20 '22 01:10

qqilihq