后台的登录注册写法

 

1.准备:创建文件夹和文件

2.inde.html    login.html    regiter.html

index.html

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Document</title>
	</head>
	<body>
		<h1>个人用户信息</h1>
		<a href="/login">登录</a>
		<br>
		<a href="/register">注册</a>
	</body>
</html>

register.html

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Document</title>
	</head>
	<body>
		<h1>用户注册</h1>
		<form action="/userRegister" method="get">
			<label for="username">username:</label>
			<input type="text" id="username" name="username">
			<br>
			<label for="password">password</label>
			<input type="password" id="password" name="password">
			<br>
			<button>注册</button>
		</form>
	</body>
</html>

login.html

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Document</title>
	</head>
	<body>
		<h1>用户登录</h1>
		<form action="/userLogin" method="post">
			<label for="username">username:</label>
			<input type="text" id="username" name="username">
			<br>
			<label for="password">password</label>
			<input type="password" id="password" name="password">
			<br>
			<button>登录</button>
		</form>
	</body>
	
</html>

3.nodejs

var http = require("http");
var fs = require("fs");
var url = require("url");
var path = require("path");
var querystring = require("querystring");

//创建服务器
http.createServer((req,res)=>{

	//获取路由路径
	var urlObj = url.parse(req.url,true);

	//处理小图标
	if(urlObj.pathname == "/favicon.ico"){
		return;
	}

	//显示index页面
	if(urlObj.pathname == "/"){
		fs.readFile(path.join(__dirname,"./views/index.html"),(err,data)=>{
			if(err){
				console.log(err);
			}else{
				res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"})
				res.end(data);
			}
		})
	}

	//跳转到注册页面
	if(urlObj.pathname == "/register"){
		fs.readFile(path.join(__dirname,"./views/register.html"),(err,data)=>{
			if(err){
				console.log(err);
			}else{
				res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"})
				res.end(data);
			}
		})
	}

	//跳转到登录页面
	if(urlObj.pathname == "/login"){
		fs.readFile(path.join(__dirname,"./views/login.html"),(err,data)=>{
			if(err){
				console.log(err);
			}else{
				res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"})
				res.end(data);
			}
		})
	}

	//处理注册页面逻辑
	if(urlObj.pathname == "/userRegister"){

		//获取浏览器发送过来的数据 
		var queryParams = urlObj.query;

		//判断用户名和密码是否为空
		if(queryParams.username && queryParams.password){
			//写入数据
			fs.appendFile(path.join(__dirname,"./userInfo.txt"),querystring.stringify(queryParams)+",",(err)=>{
				console.log("写入成功");
				res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"})
				res.end("<h1>注册成功</h1>");
			})

		}else{
			res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"})
			res.end("<h1>用户名或密码不能为空</h1>");
		}
	}

	//处理登录页面的逻辑
	if(urlObj.pathname == "/userLogin" && req.method.toLowerCase()=="post"){

		var postData = "";

		//监听数据读取
		req.on("data",(chunk)=>{
			postData += chunk;
		})

		//监听数据读取完毕
		req.on("end",()=>{
			console.log(postData);

			//获取文件中的用户名和密码
			fs.readFile(path.join(__dirname,"./userInfo.txt"),(err,data)=>{
				console.log(data.toString());

				var databasesInfo = data.toString().split(",");
				console.log(databasesInfo);

				for(var value of databasesInfo){

					//将数组里面的每一个元素转换为对象
					var obj = querystring.parse(querystring.unescape(value));
					console.log(obj);

					//判断用户名和密码是否正确
					if(obj.username == querystring.parse(postData).username && obj.password ==querystring.parse(postData).password){
						res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"})
						res.end("<h1>登录成功</h1>");
					}

				}
				res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"})
				res.end("<h1>用户名或着密码错误</h1>");
			})

		})
	}




}).listen(80);

 

转载于:https://my.oschina.net/u/3502345/blog/915977

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值