欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

相关标签: node get get请求