- get请求
GET请求传参通过URL,POST请求传参通过HTTP上行报文。GET请求不安全。
GET请求的参数在URL中。
Node.js获取get请求参数。url.parse(req.url,true).query
- 安装小型服务器环境
$ cnpm install serve-static --save
$ cnpm install finalhandler --save
<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>我是default</title>
</head>
<body>
<p>
姓名: <input type="text" name="name" />
</p>
<p>
年龄: <input type="text" name="age" />
</p>
<p>
性别:
<label><input type="radio" name="sex" value="男"/>男</label>
<label><input type="radio" name="sex" value="女"/>女</label>
</p>
<p>
<input type="button" value="按我发出GET请求 - 我对应04号案例" id="btn1"/>
</p>
<p>
<input type="button" value="按我发出POST请求 - 我对应05号案例" id="btn2"/>
</p>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$("#btn1").click(function(){
//读取表单
var name = $("input[name=name]").val();
var age = $("input[name=age]").val();
var sex = $("input[name=sex]:checked").val();
//发送请求
$.get("/addStudent",{
name : name,
age : age,
sex : sex
},function(data){
if(data == "chenggong"){
alert("恭喜,学生已经成功添加!");
}else{
alert("对不起,服务器错误!");
}
});
});
$("#btn2").click(function(){
//读取表单
var name = $("input[name=name]").val();
var age = $("input[name=age]").val();
var sex = $("input[name=sex]:checked").val();
//发送请求
$.post("/addStudent",{
name : name,
age : age,
sex : sex
},function(data){
if(data == "chenggong"){
alert("恭喜,学生已经成功添加!");
}else{
alert("对不起,服务器错误!");
}
});
});
</script>
</body>
</html>
//04 演示get请求
var finalhandler = require('finalhandler')
var http = require('http')
var serveStatic = require('serve-static')
var url=require("url");
var fs=require("fs");
//配置静态资源服务器,将public文件夹静态化出来。
var serve = serveStatic('public', {'index': ['index.html', 'index.htm']})
// Create server
var server = http.createServer(function onRequest (req, res) {
//路由
var pathname=url.parse(req.url).pathname;
if(pathname=="/addStudent"){
//拿到GET请求参数,就是拿到地址栏中的东西。
var queryJSON=url.parse(req.url,true).query;
// console.log(queryJSON.name);
// console.log(queryJSON.age);
// console.log(queryJSON.sex);
//准备写入的data
var data="姓名:"+queryJSON.name+"\r\n";
data +="年龄:"+queryJSON.age+"\r\n";
data +="性别:"+queryJSON.sex+"\r\n";
//将内容写文件
fs.writeFile("./student_data/"+queryJSON.name+".txt",data,function(err){
if(err){
res.end("quowu");
}else{
res.end("chenggong");
}
});
return;
}
//使用静态资源
serve(req, res, finalhandler(req, res));
})
// Listen
server.listen(3000);
console.log("服务器正在运行");
//05 演示post请求
var finalhandler = require('finalhandler')
var http = require('http')
var serveStatic = require('serve-static')
var url=require("url");
var fs=require("fs");
var querystring=require("querystring");
//配置静态资源服务器,将public文件夹静态化出来。
var serve = serveStatic('public', {'index': ['index.html', 'index.htm']})
// Create server
var server = http.createServer(function onRequest (req, res) {
//路由
var pathname=url.parse(req.url).pathname;
if(pathname=="/addStudent"){
//定义一个post变量,用来暂存请求体的信息
var post="";
//通过req的data事件监听函数,每当介绍请求体的数据,就累加到post变量中去
req.on('data',function(chunk){
//将段落合并
post+=chunk;
})
//在end事件触发后,通过querystring.parse将post解析为真正的post请求格式
req.on('end',function(){
post=querystring.parse(post);
//写文件
//准备写入的data
var data="姓名:"+post.name+"\r\n";
data +="年龄:"+post.age+"\r\n";
data +="性别:"+post.sex+"\r\n";
//将内容写文件
fs.writeFile("./student_data/"+post.name+".txt",data,function(err){
if(err){
res.end("quowu");
}else{
res.end("chenggong");
}
});
console.log(post);
res.end("chenggong");
//res.end(util.inspect(post));
});
return;
}
//使用静态资源
serve(req, res, finalhandler(req, res));
})
// Listen
server.listen(3000);
console.log("服务器正在运行");