node03--http

form.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form action="http://127.0.0.1:3000/" method="GET">
        <input type="text" name="name" /> <br />
        <input type="text" name="age" /> <br />
        <input type="radio" name="sex" value="男"/><input type="radio" name="sex" value="女"/><br />
        <input type="submit">
    </form>
</body>
</html>

http.js

//这个案例简单讲解http模块
//引用模块
var http = require("http");//Object.require("http")

//创建一个服务器,回调函数表示接收到请求之后做的事情
var server = http.createServer(function(req,res){
    //req参数表示请求,res表示响应
    console.log("服务器接收到了请求" + req.url);
    //设置头部
    res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"});
    res.write("<h1>我是主标题</h1>");
    res.write("<h2>我是2标题</h2>");
    res.write("<h2>我是2标题</h2>");
    res.write("<h2>我是2标题</h2>");
    res.write("<h3>我是3标题</h3>");
    res.end((1+2+3).toString());
});

//监听端口
server.listen(3000,"127.0.0.1");

req.js

var http = require("http");

var server = http.createServer(function(req,res){
    console.log(req.url);// '/'
    res.end();
});

server.listen(3000,"127.0.0.1");

url.js

var http = require("http");
var url = require("url");

var server = http.createServer(function(req,res){
    //url.parse()可以将一个完整的URL地址,分为很多部分:
    //host、port、pathname、path、query
    var pathname = url.parse(req.url).pathname;

    //url.parse()如果第二个参数是true,那么就可以将所有的查询变为对象
    //就可以直接打点得到这个参数
    var query = url.parse(req.url,true).query;

    //直接打点得到这个参数
    var age = query.age;
    
    console.log("pathname:" + pathname);// ''
    console.log(query);//json格式
    console.log("age:" + age);
    
    res.end();
});

server.listen(3000,"127.0.0.1");

url.js

var http = require("http");
var url = require("url");

var server = http.createServer(function(req,res){
    //得到查询部分,由于写了true,那么就是一个对象
    var queryObj = url.parse(req.url,true).query;
    var name = queryObj.name;
    var age = queryObj.age;
    var sex = queryObj.sex;
    
    res.end("服务器收到了表单请求" + name + age + sex);
});

server.listen(3000,"127.0.0.1");

 route.js

/*
当用户访问/student/1234567890 的查询此学号的学生信息。
当用户方位/teacher/645433 的时候,查询此老师的信息
其他的,我们提示错误。如果位数不对,也是提示位数不对
localhost:3000/student/1234567890
*/
var http = require("http");

var server = http.createServer(function(req,res){
    //得到url
    var userurl = req.url;

    res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"})
    //substr函数来判断此时的开头
    if(userurl.substr(0,9) == "/student/"){
        var studentid = userurl.substr(9);
        console.log(studentid);
        if(/^d{10}$/.test(studentid)){
            res.end("您要查询学生信息,id为" + studentid);
        }else{
            res.end("学生学号位数不对");
        }
    }else if(userurl.substr(0,9) == "/teacher/"){
        var teacherid = userurl.substr(9);
        if(/^d{6}$/.test(teacherid)){
            res.end("您要查询老师信息,id为" + teacherid);
        }else{
            res.end("老师学号位数不对");
        }
    }else{
        res.end("请检查url");
    }
});

server.listen(3000,"127.0.0.1");
原文地址:https://www.cnblogs.com/yaowen/p/7028196.html