NodeJS中get请求的识别
程序员文章站
2022-04-15 12:15:46
...
NodeJS中get的识别主要是靠地址栏中的地址是别的,核心是url.parse()
下面我直接给大家上代码讲解:
index.html文件
注意此文件在public文件夹下面(可以自己制定位置,不一定非得放在public文件夹下面,但是要注意此处index.html的位置要和下面index.js里面配置静态资源服务器的地方的文件夹名称一致)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>NodeJS的get请求</title>
</head>
<body>
<div id="main" style="width:800px;height:400px">
<div class="group">
<label for="name">名字</label>
<input type="text" id="name">
</div>
<div class="group">
<label for="age">年龄</label>
<input type="text" id="age">
</div>
<div class="group">
<label >性别</label>
<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女
</div>
<div class="group">
<button id="btn1">get请求</button>
</div>
</div>
</body>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
$("#btn1").on("click",function(){
//读取表单
var name=$("#name").val();
var age=$("#age").val();
var sex=$("input[name=sex]:checked").val();
//发送请求
$.get("/addStudent",{
name:name,
age:age,
sex:sex
},function(data){
alert(data);
})
})
</script>
</html>
index.js文件
/*
* 这个案例演示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"]})
var server=http.createServer(function onRequest(req,res){
//路由
var pathname=url.parse(req.url).pathname;
console.log(pathname);
if(pathname == "/addStudent"){
//拿到GET请求参数,就是拿到地址栏中的东西
var queryJSON = url.parse(req.url,true).query;
console.log(queryJSON);
// console.log(queryJSON.name);
// console.log(queryJSON.age);
// console.log(queryJSON.sex);
//准备要写入文本文件的内容
var data="姓名:"+queryJSON.name+"\r\n";//Windows默认使用 \ r \ n 作为行尾标记。
data+="年龄:"+queryJSON.age+"\r\n";
data+="性别:"+queryJSON.sex+"\r\n";
fs.writeFile('output.txt', data,'utf8', (err) => {
if (err) throw err;
console.log('The file has been saved!');
});
res.end("ok");
}
//使用静态资源
serve(req,res,finalhandler(req,res));
})
//listen
server.listen(3000,"127.0.0.1");
console.log("服务器已经运行在3000端口");
这里给大家扩展一下serveStatic
var serve=serveStatic(“public”,{“index”:[“index.html”,“index.htm”]})
这句话的意思是将pubic文件夹下的东西静态化后,其中对于index参数来说:如果访问一个目录那么默认会发送index.html,但是我们可以把index设置为false或者我们给这个参数发送一个数组(或者string),那么就会按照数组指定的顺序进行遍历,前面的优先级高于后者!
另外 serve(req,res,finalhandler(req,res)); 这一句话一定要放在最后,这是要求,也是需要注意的地方.
关于其他如果大家又不理解的地方,可以查看NodeJS文档
https://nodejs.org/dist/latest-v11.x/docs/api/fs.html