client提交json(nodejs)和server解析json并返回json数据(express)

先写一个nodejs文件用于向服务器发送json数据:
jsonClient.js:
var http = require('http');
var crypto = require('crypto');//引入加密模块


var text = "phoneNumber=15210943874&key=99999999";
var hasher=crypto.createHash("md5");//md5加密
hasher.update(text);
var md5key=hasher.digest('hex');//hashmsg为加密之后的数据
console.log("the md5 is:",md5key);

var user = {
    PhoneNumber: '15210943874',
    authKey: md5key
};


//var userJson=JSON.stringify(user);
//varuserString='data='+userjson;//这种格式在服务器端解析的时候可解析为req.body.datda
var userString = JSON.stringify(user);//转换为json字符格式,在服务器端直接解析req.body
var headers = {
    'Content-Type': 'application/json',
    //如果使用的是varuserString='data='+userjson格式应将'Content-Type':设为'application/x-www-form-urlencoded'//form表单格式
    'Content-Length': userString.length
};

var options = {
    host: 'localhost',//主机:切记不可在前面加上HTTP://
    port: 3000,//端口号
    path: '/image',//路径
    method: 'POST',//提交方式
    headers: headers
};


var req = http.request(options, function (res) {
//    console.log('STATUS: ' + res.statusCode);
//    console.log('HEADERS: ' + JSON.stringify(res.headers));
    //  res.setEncoding('utf8');
    res.on('data', function (message) {
        var ret= eval('(' + message + ')');
        console.log('response : ' ,ret);
    });

});
req.on('error', function(e) {
    console.log('problem with request: ' + e.message);
});

// write data to request body
req.write(userString);//向req.body里写入数据
req.end();


用express创建一个工程,然后在app.js文件中加入
app.post('/image', function(req, res, next) {
    console.log(req.body);//请求中还有参数data,data的值为一个json字符串
// var data= eval_r('(' + req.body.data + ')');//需要将json字符串转换为json对象
// console.log("data="+data.PhoneNumber);
    console.log(req.body.PhoneNumber);//解析json格式数据
    res.contentType('json');//返回的数据类型
    res.send(JSON.stringify({ status:"success" }));//给客户端返回一个json格式的数据
    res.end();
});


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值