nodejs学习笔记三(用户注册、登录)

1.定接口
     /user 接口
              输入    act=reg&user=aaa&pass=123456
              输出     {"ok":false, "msg":"原因"}
     
              输入     act=login&user=aaa&pass=123456
              输出     {"ok": true, "msg":"原因"}
 
2、server.js
     
解析数据
读取文件
 
访问的情况 --- 区分接口和文件
     1.对文件的访问
 
     2.对接口的访问
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>node登录注册</title>
<script src="jquery.js"></script>
</head>
<body>
<div>
账号:<input type="text" name="name" id="user">
</div>
<div>
密码:<input type="password" name="pass" id="password">
</div>
<input type="button" value="注册" id="reg">
<input type="button" value="登录" id="login">
</body>
<script>
$('#reg').click(function() {
console.log($('#user').val(), $('#password').val())
$.ajax({
url: '/user',
data: {act: 'reg', user: $('#user').val(), pass: $('#password').val()},
type: 'get',
success(res) {
let data = eval('('+ res +')');
if(data.ok) {
alert('注册成功');
}else {
alert('注册成功' + data.msg);
}
},
error() {
alert('通信错误');
}
})
}); $('#login').click(function() {
$.ajax({
url: 'user',
data: {act: 'login', user: $('#user').val(), pass: $('#password').val()},
type: 'get',
success(res) {
let data = eval('('+ res +')');
if(data.ok) {
alert('登录成功');
}else {
alert('登录失败' + data.msg);
}
},
error() {
alert('通信错误');
}
});
});
</script>
</html>
const http = require('http');
const fs = require('fs');
const querystring = require('querystring');
const urlLib = require('url'); // {"jason": "123456", "liming": "000000", "xiaokui": "654321"}
let users = {}; let server = http.createServer( (req, res) => {
// 解析数据
let str = '';
req.on('data', (data) => {
str += data;
});
req.on('end', () => {
let urlObj = urlLib.parse(req.url, true); const url = urlObj.pathname;
const GET = urlObj.query;
const POST = querystring.parse(str); // 区分-接口和文件
if(url == '/user') { // 接口 --处理接口
switch(GET.act) {
// 注册
case 'reg':
// 检查是否已经注册
if(users[GET.user]) {
res.write('{"ok": false, "msg": "此用户名已经存在"}');
}else {
// 插入到 users
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();
console.log(GET, users);
}else { // 文件 -- 读取文件
let file_name = './www' + url;
fs.readFile(file_name, (err, data) => {
if(err) {
res.write('');
}else {
res.write(data);
}
res.end();
});
}
});
}); server.listen();
上一篇:Linux下makefile(一)


下一篇:HDU 4268 Alice and Bob(贪心+Multiset的应用)