刚学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的站点域名设置中可设置。