转载自:http://www.kisshc.com/nodejs-3/
服务器:
var http = require("http"); //提供web服务
var url = require("url"); //解析GET请求
var query = require("querystring"); //解析POST请求
//服务
var server = function(request,response){
//定义报文头
response.writeHead(200,{"Content-Type":"text/json"});
//判断是GET/POST请求
if(request.method == "GET"){
var params = [];
params = url.parse(request.url,true).query;
params['result'] = compute(params);
response.write(JSON.stringify(params));
response.end();
}else{
var postdata = "";
request.addListener("data",function(postchunk){
postdata += postchunk;
})
//POST结束输出结果
request.addListener("end",function(){
var params = query.parse(postdata);
params['result'] = compute(params);
response.write(JSON.stringify(params));
response.end();
})
}
}
//计算
var compute = function(params){
switch(params['type']){
case "add": return parseFloat(params['num']) + parseFloat(params['num1']);break;
case "sub": return parseFloat(params['num']) - parseFloat(params['num1']);break;
case "mul": return parseFloat(params['num']) * parseFloat(params['num1']);break;
case "div": return parseFloat(params['num']) / parseFloat(params['num1']);break;
}
};
http.createServer(server).listen(8888);
console.log("Server start!");
客户端:
var request = require('request');
var http = require('http');
var qs = require('querystring');
var opt = {
host:'127.0.0.1',
port:'8888',
method:'POST',
path:'/',
headers:{
'content-type': "application/json"
//'accept-encoding': 'gzip'
}
};
var body = '';
var req = http.request(opt, function(res) {
console.log("Got response: " + res.statusCode);
res.on('data',function(d){
body += d;
});
res.on('end', function(){
console.log(res.headers);
console.log(body)
});
});
req.on('error', function(e) {
console.log("Got error: " + e.message);
});
var data = {num:"1",num1:"123",type:"add"};
req.write(qs.stringify(data));
req.end();
GET请求在浏览器地址栏中输入:
http://127.0.0.1:8888/?num=32&num1=13&type=add