模拟服务器端的get,post,文件请求。
利用jquery,ajax get模拟注册和登陆。
server.js
const http=require('http');
const url=require('url');
const querystring=require('querystring');
const fs=require('fs');
let user={
};
http.createServer((req,res)=>{
//接收数据
let path='',get={},post={};
console.log(req.method);
if(req.method=='GET'){
let {pathname, query}=url.parse(req.url, true);
path = pathname;
get=query;
complete();
}
else if(req.method=='POST'){
path=req.url;
let arr=[];
req.on('data',buffer=>{
arr.push(buffer);
});
req.on('end',()=>{
let buffer = Buffer.concat(arr);
post=querystring.parse(buffer.toString());
complete();
})
}
function complete(){
if(path=='/reg'){
let {username,password}=get;
if(user[username]){
res.write(JSON.stringify({error:1,msg:'had'}));
res.end();
}else{
user[username]=password;
res.write(JSON.stringify({error:0,msg:''}));
res.end();
}
}else if(path=='/login'){
let {username, password}=get;
if(!user[username]){
res.write(JSON.stringify({error:1,msg:'no user'}));
res.end();
}else if(user[username]!=password){
res.write(JSON.stringify({error:1,msg:'wrong pass'}));
res.end();
}else {
res.write(JSON.stringify({error:0,msg:'ok'}));
res.end();
}
}else{
fs.readFile(`www${path}`,(err,buffer)=>{
if(err){
res.writeHeader(404);
res.write('not found');
res.end();
}
else {
res.write(buffer);
res.end();
}
})
}
}
}).listen(8080);
1.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script src="jquery.js" charset="utf-8"></script>
用户名:<input type="text" id="user" /><br>
密码:<input type="password" id="pass" /><br>
<input type="button" value="注册" id="btn1">
<input type="button" value="登陆" id="btn2">
<script type="text/javascript">
$(function(){
$('#btn1').click(()=>{
$.ajax({
url:'/reg',
data:{
username:$('#user').val(),
password:$('#pass').val()
},
dataType:'json'
}).then(json=>{
if(json.error)
alert(json.msg);
else
alert('注册成功');
},err=>{
alert('注册失败,请刷新重试!')
});
});
$('#btn2').click(()=>{
$.ajax({
url:'/login',
data:{
username:$('#user').val(),
password:$('#pass').val()
},
dataType:'json'
}).then(json=>{
if(json.error)
alert(json.msg);
else
alert('登陆成功');
},err=>{
alert('登陆失败,请刷新重试!')
});
})
})
</script>>
</body>
</html>