• Node.js获取GET/POST数据


    目标:使用Node.js搭建简单服务器提供简单接口,达到两数字加减乘除计算并返回json结果。(通用GET/POST)

    知识点

    1. 获取GET数据
    2. 获取POST数据
    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['fruit'] = 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['fruit'] = 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 "subtract": return parseFloat(params['num']) - parseFloat(params['num1']);break;
            case "multiplication": return parseFloat(params['num']) * parseFloat(params['num1']);break;
            case "division": return parseFloat(params['num']) / parseFloat(params['num1']);break;
        }
    }
    
    //开启服务在127.0.0.1:8080
    http.createServer(server).listen(8080);  
    console.log("Server start!");  

    值得注意的是由于POST质量过大,所以不能像GET请求那样直接拿去数据。需要增加监听事件,并且在POST结束前都不能结束应答(response)完成报文流,所以要把输出、结束放到监听结束事件里。

    测试

    GET:http://127.0.0.1:8080/?num=32&num1=13&type=add 
    //print {"num":"32","num1":"13","type":"add","fruit":45}

    POST: 
    我测试POST使用的是chrome插件postman,当然它一样可是测试GET请求。它包含所有请求类型(delete、put、copy、patch、lock等)

    POST请求

    GET请求

  • 相关阅读:
    简单批处理内部命令简介(转)
    CPU 内存 频率 DDR DDR2 DDR3
    python 正则表达式
    bat 脚本 > >> 管道
    python 多进程 无数进程 重复进程 死机
    NLP相关期刊和会议
    deamon tools dtsoft virtual cdrom device 失败 错误
    占位
    2011年07月03日的日记
    每周总结(第二周)
  • 原文地址:https://www.cnblogs.com/miid/p/5656476.html
Copyright © 2020-2023  润新知