1. 程式人生 > >node初學制作登錄服務器實例

node初學制作登錄服務器實例

json .html .get load http break post res gin

文件目錄如下:

技術分享圖片

user.html代碼:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title></title>
</head>
<body>
<p>用戶名:<input type="text" id="user"></p>
<p>密碼:<input type="password" id="pass"></p>
<input type="button" value="註冊" id="reg_btn">
<input type="button" value="登錄" id="login_btn">
<script src="ajax.js" charset="utf-8"></script>
<script type="text/javascript">
window.onload=function(){
var oTextUser=document.getElementById(‘user‘);
var oTxtPass=document.getElementById(‘pass‘);
var oBtnReg=document.getElementById(‘reg_btn‘);
var oBtnLogin=document.getElementById(‘login_btn‘);

oBtnReg.onclick=function(){
ajax({
url:‘/user‘,
data:{act:‘reg‘,user:oTextUser.value,pass:oTxtPass.value},
type:‘get‘,
success:function(str){
var json=eval(‘(‘+str+‘)‘);

if(json.ok){
alert(‘註冊成功‘);
}
else{
alert(‘註冊失敗‘+‘,‘+json.msg);
};
},
error:function(){
alert(‘通信失敗‘);
}
})
}
oBtnLogin.onclick=function(){
ajax({
url:‘/user‘,
data:{act:‘login‘,user:oTextUser.value,pass:oTxtPass.value},
type:‘get‘,
success:function(str){
var json=eval(‘(‘+str+‘)‘);

if(json.ok){
alert(‘登錄成功‘);
}
else{
alert(‘登錄失敗‘+‘,‘+json.msg);
};
},
error:function(){
alert(‘通信失敗‘);
}
})
}
}
</script>
</body>
</html>

server.js代碼:

var http=require(‘http‘);
var fs=require(‘fs‘);
var querystring=require(‘querystring‘);
var 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);
var url=obj.pathname;
var GET=obj.query;
var POST=querystring.parse(str);
//訪問接口
if(url==‘/user‘){
switch(GET.act){
case ‘reg‘:
//1.檢查用戶名是否已經有了
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"}‘);
}
res.end();
}
else{
//訪問文件
var file_name=‘./www‘+url;
fs.readFile(file_name,function(err,data){
if(err){
res.write(‘404‘);
}
else{
res.write(data);
}
res.end();
})
}

})
})
server.listen(8080);

node初學制作登錄服務器實例