使用express在节点服务器上接收JSON对象

时间:2014-06-06 14:24:24

标签: java json node.js express http-post

我正在向java中的节点服务器发送一个json对象。我想在服务器控制台中显示该值。在服务器控制台上我得到未定义。如何获取 JSON 对象并在nodejs中解析它使用快递。

Java代码

        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());
            }

节点服务器

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);

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用:

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

这需要您安装body-parser包:

$ npm install body-parser

答案 1 :(得分:1)

您忘记将实体附加到您的帖子请求。

 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());
        }