zoukankan      html  css  js  c++  java
  • Node.js GET/POST请求

    由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后面的部分,因此你可以手动解析后面的内容作为GET请求的参数。

    node.js 中 url 模块中的 parse 函数提供了这个功能。

    var http=require("http");
    var url=require("url");
    var util=require("util");
    
    http.createServer(function(req,res){
        res.writeHead(200,{"Content-Type":"text/plain;charset=utf-8"});
        //util.inspect()对象转字符串
        //url.parse()将一个完整的URL地址,分为很多部分,常用的有:host、port、pathname、path、query
        //为true时将使用查询模块分析查询字符串,默认为false
        res.end(util.inspect(url.parse(req.url,true)));
    }).listen(3000);

     在浏览器访问:http://localhost:3000/user?name=cyy&url=www.baidu.com

    使用 url.parse 方法来解析 URL 中的参数

    var http=require("http");
    var url=require("url");
    var util=require("util");
    
    http.createServer(function(req,res){
        res.writeHead(200,{"Content-Type":"text/plain;charset=utf-8"});
    
        // 解析 url 参数
        var params=url.parse(req.url,true).query;
        res.write(params.name);
        res.write("
    ");
        res.write(params.url);
        res.end();
    }).listen(3000);

     获取post请求:

    var http=require("http");
    var querystring=require("querystring");
    var util=require("util");
    
    var postHTML=
    '<html><head><meta charset="utf-8"><title>post</title></head><body>'+
    '<form method="post">'+
    '网站名:<input type="text" name="name"><br>'+
    '网址<input type="text" name="url"><br>'+
    '<input type="submit">'+
    '</form></body></html>';
    
    http.createServer(function(req,res){
    
        // 定义了一个post变量,用于暂存请求体的信息
        var post="";
    
        // 通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中
        req.on("data",function(truck){
            post+=truck;
        })
    
        // 在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。
        req.on("end",function(){
            post=querystring.parse(post);
    
            //设置响应头部信息及编码
            res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
    
            //如果存在数据则输出数据,否则输出表单
            if(post.name && post.url){
                res.write("网站名:"+post.name+"<br>");
                res.write("网址"+post.url+"<br>");
            }else{
                res.write(postHTML);
            }
    
            res.end();
        })
    
    }).listen(3000);

     

  • 相关阅读:
    HDU 4539郑厂长系列故事――排兵布阵(状压DP)
    HDU 2196Computer(树形DP)
    HDU 4284Travel(状压DP)
    HDU 1520Anniversary party(树型DP)
    HDU 3920Clear All of Them I(状压DP)
    HDU 3853LOOPS(简单概率DP)
    UVA 11983 Weird Advertisement(线段树求矩形并的面积)
    POJ 2886Who Gets the Most Candies?(线段树)
    POJ 2828Buy Tickets
    HDU 1394Minimum Inversion Number(线段树)
  • 原文地址:https://www.cnblogs.com/chenyingying0/p/12463369.html
Copyright © 2011-2022 走看看