NodeJS中get请求的识别

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

猜你喜欢

转载自blog.csdn.net/bhq1711617151/article/details/88294774