node获取get参数和post参数

node获取get参数和post参数

1.get参数

引入包url,使用url.parse()对url地址进行解析,返回一个对象,就是get参数.

let {pathname,query} = url.parse(req.url,true);

  • pathname 地址
  • query 参数

表单部分

<form action="/aaa" method="get">
    账号<input type="text" name='username'> <br>
    密码<input type="password" name='password'> 
    <input type="submit" value = "提交">
</form>

js部分

const http = require('http');
const url = require('url');
const fs = require('fs');

let server = http.createServer((req,res)=>{
	// console.log(url);
	let {pathname,query} = url.parse(req.url,true);

	if(pathname === '/'){
		fs.readFile('./www/2.html',(err,data)=>{
			if(err){
				res.writeHeader(404);
				res.end(`<!DOCTYPE html>
					<html lang="en">
					<head>
					<meta charset="UTF-8" />
					<title>404</title>
					</head>
					<body>
					<h1>
					您要找的页面找不到了</h1>
					</body>
					</html>`);
			}else{
				res.end(data);
			}
		})
	}else if(pathname ==='/aaa'){
		res.end(`<!DOCTYPE html>
			<html lang="en">
			<head>
			<meta charset="UTF-8" />
			<title>数据</title>
			</head>
			<body>
			<h1>你提交的账号为:${query.username}</h1>
			<h1>你提交的密码为:${query.password}</h1>
			</body>
			</html>`)
	}
});

server.listen(3000,()=>{
    console.log('服务器启动成功');
});

使用cmd进入目录后打开看看node .\4-url包获取get参数.js
在这里插入图片描述
在这里插入图片描述

2.post参数

引入包const querystring = require('querystring');对数据进行解析,返回一个参数对象

post与get略有区别,我们都知道,post请求是在请求体body中传递的,可以传递的数据比get要大很多。在网络中post有可能是分段传递数据的。我们需要把每一次传递过来的数据保存起来,最后再解析。

req.on('data',buffer=>{
	arr.push(buffer);	//创建一个数组,把每次传递过来的数据保存
});

req.on('end',()=>{
    let buf = Buffer.concat(arr);	//使用concat把数据连接起来
    let post = querystring.parse(buf.toString());//解析数据
}

表单部分

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>post</title>
</head>
<body>
	<form action="/aaa" method="post">
		账号<input type="text" name='username'> <br>
		密码<input type="password" name='password'> 
		<input type="submit" value = "提交">
	</form>
</body>
</html>

js部分

const http = require('http');
const url = require('url');
const fs = require('fs');
const querystring = require('querystring');

let server = http.createServer((req,res)=>{
	let {pathname,query} = url.parse(req.url,true);
	if(pathname === '/'){
		fs.readFile('./www/2.html',(err,data)=>{
			if(err){
				res.writeHeader(404);
				res.end(`<!DOCTYPE html>
					<html lang="en">
					<head>
					<meta charset="UTF-8" />
					<title>404</title>
					</head>
					<body>
					<h1>
					您要找的页面找不到了</h1>
					</body>
					</html>`);
			}else{
				res.end(data);
			}
		})
	}else if(pathname ==='/aaa' && req.method === 'POST'){
		let arr = [];
		req.on('data',buffer=>{
			arr.push(buffer);
		});
		req.on('end',()=>{
			let buf = Buffer.concat(arr);
			let post = querystring.parse(buf.toString());
			res.end(`<!DOCTYPE html>
				<html lang="en">
				<head>
				<meta charset="UTF-8" />
				<title>post方法</title>
				</head>
				<body>
				<h1>你提交的账号为:${post.username}</h1>
				<h1>你提交的密码为:${post.password}</h1>
				</body>
				</html>`);
		});
	}
});

server.listen(3000,()=>{
	console.log('服务器启动成功');
})

在这里插入图片描述
在这里插入图片描述

写在最后

最近懒了好多,学习的时间都减少了。node这部分是前端的基础,必须要掌握的。

对于get/post请求,可能以后用了express之后获取就很简单了,但是我觉得学习是学习一个学习的过程,原生的方法不重视,那就没有意义。
ps代码中有好多最近刚学的es6语法,let啊 箭头函数啊,不懂的可以百度查一查。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值