Node.js how to read json data from request?
19,978
Solution 1
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.
// ...
});
Solution 2
For Express 4+,
const express = require("express");
const app = express();
app.use(express.json());
Then, you can use req.body
as expected.
app.post("/api", (req, res) => {
/*
If the post request included { data: "foo" },
then you would access `data` like so:
*/
req.body.data
...
});
Related videos on Youtube
Author by
arslan
Updated on September 28, 2022Comments
-
arslan over 1 year
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" }
fromreq
? -
arslan over 7 yearsThank you so much, it worked. Finally ufffffff. It would be great if you could explain how can I send such a JSon to client by "res" parameter :)
-
qqilihq over 7 years
res.json(object)
is the correct way to go. As already given in your sample code. -
arslan over 7 yearsI read many tutorials. Some use "res.json(object)", some use "res.end(something)", quite confusing for people who new to this.
-
qqilihq over 7 years
res.json
will automatically set the responsecontent-type
header toapplication/json
, whileres.send
will settext/html
by default. If you're returning JSON, definitely use theres.json
function. -
qqilihq over 7 yearsMore details here: stackoverflow.com/questions/19041837/…
-
arslan over 7 yearsI am trying to send a large data as JSon, is there any example of constructing JSon data and send back? I think I need to define a function for construct JSon and send by "res.json(data)". Could you show me an example of it? I would appreciate it
-
qqilihq over 7 yearsTo keep things here on topic, rather open a new post for this. I can have a look later on :)
-
arslan over 7 yearsI try myself first, then ask if have troubles :) thx, you helped a lot
-
Tomáš Zato over 6 yearsWell is that really something that can't be solved without external library?