Abhishek Kaushik
Abhishek Kaushik

Reputation: 1159

Receive JSON object on node server using express

I am sending a json object to my node server in java. I want to display the value in server console. On server console i am getting undefined. How to get the JSON object and parse it in nodejs using express.

Java Code

        try
            {
               HttpClient client = new DefaultHttpClient();
               HttpPost post = new HttpPost("http://example.com:3000/");
               JSONObject msg = new JSONObject();  Log.e("data",code);
               msg.put("data", code);
               HttpEntity entity = new StringEntity(msg.toString());
               BufferedReader reader = new BufferedReader(new   
               InputStreamReader(client.execute(post).getEntity().getContent()));
               String response = reader.readLine();
               Log.e("response", response);

            }
            catch(Exception e)
            { Log.e("",e.toString());
            }

Node Server

var express = require("express");
var http=require("http");
var app = express();
app.use(express.bodyParser());
app.post("/", function(request, response)
{


    response.send(JSON.stringify({success: true}));
    var token = request.body.data;
    console.log(token);


});
app.listen(3000);

Upvotes: 0

Views: 1765

Answers (2)

ashu
ashu

Reputation: 1039

You forgot to attach entity to your post request.

 try
        {
           HttpClient client = new DefaultHttpClient();
           HttpPost post = new HttpPost("http://example.com:3000/");
           JSONObject msg = new JSONObject();  Log.e("data",code);
           msg.put("data", code);

           // modified code below
           HttpEntity entity = new StringEntity(msg.toString(), ContentType.create("application/json"));
           post.setEntity(entity);

           BufferedReader reader = new BufferedReader(new   
           InputStreamReader(client.execute(post).getEntity().getContent()));
           String response = reader.readLine();
           Log.e("response", response);

        }
        catch(Exception e)
        { Log.e("",e.toString());
        }

Upvotes: 1

Etienne Bruines
Etienne Bruines

Reputation: 3038

Have you tried using:

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

This requires you to install the body-parser package:

$ npm install body-parser

Upvotes: 1

Related Questions