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

node03--http的更多相关文章

  1. node03

    1.express处理post请求 借助body-parse中间件,其实最终我们也不会使用这个 对于get请求,无需中间件,用req.query即可返回相应的数据 但是post我们尝试借助中间件处理 ...

  2. 网站日志流量分析采集(LuaJIT系统环境部署-node03,相关jar包自己手动上传)

    注:/usr/local/src 是源码包路径,可以自己更改 服务器中安装依赖 yum -y install gcc perl pcre-devel openssl openssl-devel 上传 ...

  3. Keepalived 配置实例

    Keepalived 是一款轻量级HA集群应用,它的设计初衷是为了做LVS集群的HA,即探测LVS健康情况,从而进行主备切换,不仅如此,还能够探测LVS代理的后端主机的健康状况,动态修改LVS转发规则 ...

  4. Puppet3在CentOS6.5集群下的安装

    环境:3台主机, IP分别为10.211.55.11.12.13 puppet master安装在10.211.55.11 puppet agent安装在10.211.55.11.12.13 1.安装 ...

  5. 解决zabbix图中出现中文乱码问题 图中的中文会变成方块

    [root@node03 src]# wget http://down1.chinaunix.net/distfiles/ttf-arphic-uming_0.0.20050501-1.tar.gz ...

  6. 分布式架构高可用架构篇_02_activemq高可用集群(zookeeper+leveldb)安装、配置、高可用测试

    参考: 龙果学院http://www.roncoo.com/share.html?hamc=hLPG8QsaaWVOl2Z76wpJHp3JBbZZF%2Bywm5vEfPp9LbLkAjAnB%2B ...

  7. 分布式架构高可用架构篇_01_zookeeper集群的安装、配置、高可用测试

    参考: 龙果学院http://www.roncoo.com/share.html?hamc=hLPG8QsaaWVOl2Z76wpJHp3JBbZZF%2Bywm5vEfPp9LbLkAjAnB%2B ...

  8. 【转载】图解:二叉搜索树算法(BST)

    原文:图解:二叉搜索树算法(BST) 摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢!“岁月极美,在于它必然的流逝”“春花 秋月 夏日 冬雪”— ...

  9. 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

    // test20.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

  10. Advanced Awk for Sysadmins

    转:http://www.linuxforu.com/2011/06/advanced-awk-for-sysadmins/ By Vishal Bhatia on June 1, 2011 in H ...

随机推荐

  1. Css学习总结(2)——60个有用CSS代码片段

    1.垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,可以很优雅的解决这个困惑: .verticalcenter{ position: re ...

  2. POJ2142 The Balance (扩展欧几里德)

    本文为博主原创文章,欢迎转载,请注明出处 www.cnblogs.com/yangyaojia The Balance 题目大意  你有一个天平(天平左右两边都可以放砝码)与重量为a,b(1<= ...

  3. ASP.NET-常用正则表达式

    常用正则表达式 正则: [RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}", ErrorMes ...

  4. SQLSERVER-存储过程知识点

    原文链接:http://www.qeefee.com/article/000566 存储过程是一组预编译的SQL语句,它可以包含数据操纵语句.变量.逻辑控制语句等. 存储过程允许带参数: 输入参数:可 ...

  5. JDK1.7中的ThreadPoolExecutor源代码剖析

    JDK1. 7中的ThreadPoolExecutor 线程池,顾名思义一个线程的池子,池子里存放了非常多能够复用的线程,假设不用线程池相似的容器,每当我们须要创建新的线程时都须要去new Threa ...

  6. C++ OTL MySQL(Windows/Linux) V8.1

    Windows每秒钟10000条以上插入:Linux每秒插入300条以上.Q269752451 输出截图: Linux输出: Windows输出: 有须要的联系 QQ 3508551694 water ...

  7. Ansible@一个高效的配置管理工具--Ansible configure management--翻译(七)

    如无书面授权,请勿转载 Larger Projects Until now, we have been looking at single plays in one playbook file. Th ...

  8. iOS声明变量详解

    内容概述: 本文主要讲述了ios中多种声明变量方式的区别与联系,以及@interface声明的成员变量与@property属性的差异.最后介绍了推荐的声明方式. atany原创,转载请注明博主与博文链 ...

  9. [JZOJ 4307] [NOIP2015模拟11.3晚] 喝喝喝 解题报告

    题目链接: http://172.16.0.132/senior/#main/show/4307 题目: 解题报告: 题目询问我们没出现坏对的连续区间个数 我们考虑从左到有枚举右端点$r$,判断$a[ ...

  10. HTML与CSS学习记录

    title: HTML与CSS学习记录 toc: true date: 2018-09-10 14:04:59 <HTML与CSS进阶教程读书笔记> HTML基础知识 HTML与XHTML ...