AJAX请求服务器,文件的存放位置,NODEJS实现简单的登录注册

刚学NODEJS哈哈哈,写下来就不怕忘记啦。

NODEJS代码

//jquery.1.9.1.min.js
const http=require('http');
const fs=require('fs');
const querystring=require('querystring');
const urlLib=require('url');

var user={};

var server=http.createServer(function(req,res){
	//post
	var src='';
	req.on('data',function(data){
		src+=data;
	});
	req.on('end',function(){
		//console.log('接收数据完成',src);

		//get
		var obj=urlLib.parse(req.url,true);
		const url=obj.pathname;
		const get=obj.query;
		const post=querystring.parse(src);

		if(url=='/user'){
			switch(get.act){
			case 'reg':
				if(user[get.name]){
					res.write("{'ok':false,'msg':'用户名存在'}");
				}else{
					user[get.name]=get.pass;
					res.write("{'ok':true,'msg':'注册成功'}");
				}
				break;
			case 'login':
				//if(get[user]!=user[name]){
				if(user[get.name]==null)
					res.write("{'ok':false,'msg':'用户名不存在'}");
				//}else if(get[pass]!=user[pass]){
					else if(get.pass!=user[get.name]){
					res.write("{'ok':false,'msg':'用户名或者密码错误'}");
				}else{
					res.write("{'ok':true,'msg':'登录成功'}");
				}
				break;
			default:
					res.write("{'ok':false,'msg':'未知的act'}");
			}
			res.end();
		}else{
			var filename='./www'+url;
			fs.readFile(filename, function(err,data){
				if(err){
					res.write('404啦');
					console.log('404了');
				}else{
					res.write(data);
				}
				res.end();
			});
		}


	});

	
});
server.listen(8081);

HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="jquery.1.9.1.min.js" type="text/javascript"></script>
	<script>
	window.onload=function(){
		var user=document.getElementById('user');
		var pass=document.getElementById('pass');
		var oBtn_reg=document.getElementById('reg');
		var oBtn_login=document.getElementById('login');

		oBtn_reg.onclick=function(){
			$.ajax({
				type:'get',
				//url:'http://localhost:8081/user',
				url:'/user',
				data: {'act':'reg','name':user.value,'pass':pass.value},
				success:function(str){
					var json=eval('('+str+')');
					if(json.ok){
						alert('注册成功');
					}else{
						alert('注册失败了啦,'+json.msg);
					}
				},
				error:function(msg){
					alert('通信错误'); 
				}
			});
			//alert('1');
		};
		oBtn_login.onclick=function(){
			$.ajax({
				type:'get',
				//url:'http://localhost:8081/user',
				url:'/user',
				data: {'act':'login','name':user.value,'pass':pass.value},
				success:function(str){
					var json=eval('('+str+')');
					if(json.ok){
						alert('登录成功');
					}else{
						alert('登录失败了啦,'+json.msg);
					}
				},
				error:function(msg){
					alert('通信错误了'); 
				}
			});
			//alert('2');
		};
	}
	</script>
</head>
<body>
	用户名:<input type="text" id='user'></br>
	密码:<input type="password" id="pass"></br>
	<button id='reg'>注册</button>
	<button id='login'>登录</button>
</body>
</html>

注意:代码里面写了‘不是/user时候找文件在www文件夹下’,所以:

www里面:

注意:server.listen(8081);

浏览器中输网址的时候:localhost:8081/ajax_login_reg.html

我的理解:JS和WWW不管放在电脑哪里都可以。JS那边运行起来,网址通过这个8081端口找到的JS的位置,然后代码写了在WWW目录下,于是自动找到了。并不用手动去找。此外,放在phpstudy中的WWW下网址也一样这么输入。所以一定要加端口号8081,不加端口号的话,localhost默认指向phpstudy/WWW,端口80,所以会到那里去找哦。(虽然这样,但是如果改server.listen(80);刚好和默认端口号一样,localhost/ajax_login_reg.html也还是会404找不到这个文件)。

 

总结:一定要加端口号,然后JS代码写了fsReadFile(..)中文件在哪里就必须在哪里。AJAX必须用localhost,上面AJAX请求的是服务器,但如果AJAX请求的是静态文件比如a.txt,则直接把它俩放在phpstudy/WWW目录下,localhost/AJAX.html即可。

ps:localhost默认指向phpstudy/WWW,端口80,在phpstudy的站点域名设置中可设置。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值