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. SELECT使用子查询

    SELECT使用子查询   SELECT使用子查询,该子查询会执行多次,  次数是由记录数量决定.效率比较低,不推荐使用.  //查询部门编号,工资大于等于2000的人数,  //工资小于2000的人 ...

  2. BTrace介绍和生产环境样例

    BTrace latest realese: release-1.2.5.1 BTrace guide(1.2-20101020): http://kenai.com/projects/btrace/ ...

  3. IMP-00010: 不是有效的导出文件,标题验证失败

    IMP-00010: 不是有效的导出文件,标题验证失败 IMP-00000: 未成功终止导入   在google上查找了一下,大概有两种情况: 1.imp/exp的版本不对,也就是说低版本的导出,可以 ...

  4. linux进程控制函数详解

    进程控制 fork函数 创建一个子进程. pid_t fork(void); 失败返回-1:成功返回:① 父进程返回子进程的ID(非负) ②子进程返回 0 pid_t类型表示进程ID,但为了表示-1, ...

  5. JSP学习(一)

    1.jsp脚本和注释 jsp脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部 2)<%=java变量或表达式> ----- 会被翻 ...

  6. POJ 1064 Cable master 【二分答案】

    和杭电那一题一样,只不过G++交不能通过,C++能过 wa了好多好多好多次----------------------------------------- #include<iostream& ...

  7. GatewayWorker 版本升级过程和注意点

    公司开发用到WorkerMan框架,开发RPC服务,用于拉取用户信息和协助用户注册. workman 官网:http://www.workerman.net/workerman 老版本: worker ...

  8. NOIp模拟赛二十九

    又是受虐的一天呢~接下来四天都要打模拟赛QAQ 今日分数:0(100)+100+0=100 A题O(读入)结论题判断结果时没return 0被subtask卡成0分,喜提fstQAQ,B题DP,C题不 ...

  9. (noip模拟二十一)【BZOJ2500】幸福的道路-树形DP+单调队列

    Description 小T与小L终于决定走在一起,他们不想浪费在一起的每一分每一秒,所以他们决定每天早上一同晨练来享受在一起的时光. 他们画出了晨练路线的草图,眼尖的小T发现可以用树来描绘这个草图. ...

  10. BZOJ 3530 [SDOI2014]数数 (Trie图/AC自动机+数位DP)

    题目大意:略 裸的AC自动机+数位DP吧... 定义f[i][x][0/1]表示已经匹配到了第i位,当前位置是x,0表示没到上限,1到上限,此时数是数量 然而会出现虚拟前导零,即前几位没有数字的情况, ...