笔记
首先定义接口
接口名称: /user
请求参数:act=reg&username=aaa&pass=123456
act的值区分是注册还是登录
username是用户名
pass是密码
返回值 {'ok':false,'msg':'原因'}
需求是这样的
先说注册
1.输入用户名跟密码提交注册时后台判断该用户名是否已经存在,如果已经存在就提示用户该用户名已经存在,否则注册成功
登录
1.输入用户名跟密码提交登录时判断该用户名是否已经注册,没有注册提示用户先去注册,如果已经注册判断输入的密码是否与注册时的密码一致,不一致时提醒用户名账号或者密码输入错误,一致时直接是登录成功
html代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>POST发送表单</title>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
</head>
<body>
<p>注册</p>
<form name='regiForm'>
用户名:
<input type="text" name="name" id="">
密码:
<input type="password" name="pass" id="">
</form>
<button class="registered">注册</button>
<p>登录</p>
<form name='loginForm'>
用户名:
<input type="text" name="name" id="">
密码:
<input type="password" name="pass" id="">
</form>
<button class="login">登录</button>
</body>
<script>
$(function () {
$('.registered').click(function () {
$.ajax({
// async: false,
type: 'GET',
url: 'http://localhost:8888/user',
data: {
act: 'reg',
name:regiForm.name.value,
pass:regiForm.pass.value
},
success: function (res) {
let result=JSON.parse(res)
if(result.ok){
console.log('注册成功')
}else{
console.log(result.msg)
}
},
error: function () {
console.log('网络错误')
}
});
})
$('.login').click(function () {
$.ajax({
// async: false,
type: 'GET',
url: 'http://localhost:8888/user',
data: {
act: 'login',
name:loginForm.name.value,
pass:loginForm.pass.value
},
success: function (res) {
let result=JSON.parse(res)
if(result.ok){
console.log('登录成功')
}else{
console.log(result.msg)
}
},
error: function () {
console.log('网络错误')
}
});
})
})
</script>
</html>
server.js代码
const http = require("http");
const fs = require("fs");
const querystring = require("querystring");
const URL = require("url");
var users = {};
http
.createServer(function(req, res) {
var postStr = "";
req.on("data", function(data) {
postStr += data;
});
req.on("end", function() {
var obj = URL.parse(req.url, true);
console.log(obj)
const url = obj.pathname;
const get = obj.query;
const post = querystring.parse(postStr);
console.log(url)
// 判断是否是接口
if (url == "/user") {
//注册
if (get.act =="reg") {
if (users[get.name]) {
res.write('{"ok":false,"msg":"该用户已经存在,可以直接登录"}');
} else {
users[get.name] = get.pass;
res.write('{"ok":true,"msg":"注册成功"}');
}
//登录
} else if (get.act == "login") {
if (!users[get.name]) {
res.write('{"ok":false,"msg":"该用户还没注册"}');
} else if (users[get.name] != get.pass) {
res.write('{"ok":false,"msg":"密码错误"}');
} else {
res.write('{"ok":true,"msg":"登录成功"}');
}
} else {
res.write('{"ok":false,"msg":"没有该类型的文件"}');
}
res.end();
} else {
var file_name = './' + req.url;
fs.readFile(file_name, function (err, data) {
if (err) {
res.write('404');
} else {
res.write(data.toString());
}
res.end();
})
}
});
// res.end();
})
.listen(8888);