• 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);

     

  • 相关阅读:
    Extjs 4 生成饼状图的例子
    cocos2d-x 3.0rc2 对于每个包执行情况的重要平台 (超级方便)
    HDOJ 1495 非常可乐 【BFS】
    Android采用HttpClient下载图片
    解决本地访问Android文档是非常慢的问题
    潜在语义分析Latent semantic analysis note(LSA)原理及代码
    你奋斗这么辛苦,这辈子要证明什么?
    Objective-C时间戳转换的转换和时间
    Delphi 线程resume 不能调用Execute
    Delphi 多线程 “尚未调用CoInitialize错误”的解决方法
  • 原文地址:https://www.cnblogs.com/chenyingying0/p/12463369.html
Copyright © 2020-2023  润新知