欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Node.js GET/POST请求

程序员文章站 2022-03-26 22:55:24
由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后面的部分,因此你可以手动解析后面的内容作为GET请求的参数。 node.js 中 url 模块中的 parse 函数提供了这个功能。 var http=require("http"); var url=require("url"); ......

由于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);

Node.js GET/POST请求

 

 在浏览器访问:

Node.js GET/POST请求

 

 

使用 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("\n");
    res.write(params.url);
    res.end();
}).listen(3000);

Node.js GET/POST请求

 获取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);

Node.js GET/POST请求

 

 

Node.js GET/POST请求

 

 Node.js GET/POST请求