简易的登陆和注册(node.js学习)

之前学习视频的时候学习了node.js简单的项目联系,后台使用了node.js,前台交互用了原生ajax。

node部分

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

var users = {}//储存用户信息 名字:密码

var server = http.createServer(function (req,res){
	//解析数据
	var str = '';
	req.on('data',function (data){
		str += data;
	});
	req.on('end',function(){
		var obj = urllib.parse(req.url,true);
		const url = obj.pathname;
		const GET = obj.query;
		const POST = querystring.parse(str);//将字符串转化为json格式
		//区分————接口或文件
		if(url == '/user'){//接口
			switch(GET.act){
				case 'reg':
				//检查用户名是否已经有了
				//插入users
				if(users[GET.user]){
					res.write('{"ok":false,"msg":"此用户已存在"}');
				}else{
					//插入用户名
					users[GET.user] = GET.pass;
					res.write('{"ok":true,"msg":"注册成功"}');
				}
				break;
				case 'login':
				//检查用户是否存在
				//检查用户密码是否正确
				if(users[GET.user]==null){
					res.write('{"ok":false,"msg":"此用户不存在"}');
				}else if(users[GET.user] != GET.pass){
					res.write('{"ok":false,"msg":"用户名或密码有误"}');	
				}else{
					res.write('{"ok":true,"msg":"登陆成功"}');
				}
				break;
				default:
				res.write('{"ok":false,"msg":"未知的act"}');
				break;
			}
			res.end();
		}else{//文件
									//读取文件
			var filename = './www'+url;
			fs.readFile(filename,function(err,data){
				if(err){
					res.write('404');
				}else{
					res.write(data);
				}
				res.end();
			});
		}
	});
});

server.listen(8080); 

原生ajax部分

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>ajax</title>
</head>
<body>
	
	用户名:<input type="text" id="user"><br>
	密码:<input type="password" id="pass"><br>
	<input type="button" value="注册" id="reg">
	<input type="button" value="登陆" id="login">
	<script type="text/javascript">
		var user = document.getElementById('user');
		var padd = document.getElementById('pass');
		var reg = document.getElementById('reg');
		var login = document.getElementById('login');
		reg.onclick = function(){
			if(window.XMLHttpRequest){
				xhr = new XMLHttpRequest();
			}else{
				xhr = ActiveXObject("Microsoft.XMLHTTP");
			}
			xhr.onload = function(){
				if(xhr.status == 200){
					var json = JSON.parse(this.responseText);
					console.log(json);
					if(json.ok){
						alert('注册成功');
					}else{
						alert('注册失败 '+json.msg);
					}
				}else{
					alert('404');
				}
			}
			xhr.open("GET","/user?act=reg&user="+user.value+"&pass="+pass.value,true);
			xhr.send(null);
		}
		login.onclick = function (){
			if(window.XMLHttpRequest){
				xhr = new XMLHttpRequest();
			}else{
				xhr = ActiveXObject("Microsoft.XMLHTTP");
			}
			xhr.onload = function(){
				if(xhr.status == 200){
					var json = JSON.parse(this.responseText);
					console.log(json);
					if(json.ok){
						alert('登陆成功');
					}else{
						alert('登陆失败 '+json.msg);
					}
				}else{
					alert('404');
				}
			}
			xhr.open("GET","/user?act=login&user="+user.value+"&pass="+pass.value,true);
			xhr.send(null);
		}
	</script>

</body>
</html>

这部分的完成是根据视频完成了node部分的内容,自己完成了前端部分的内容,个人认为还有很多部分没有真正掌握。node中主要使用了get接受前端传来的数据并加以响应,而我的前端部分自然是主写get请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值