client提交json(nodejs)和server解析json並返回json資料(express)
阿新 • • 發佈:2019-02-18
先寫一個nodejs檔案用於向伺服器傳送json資料:
jsonClient.js:
用express建立一個工程,然後在app.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(); });