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

时间:2022-06-01 05:15:15
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(
'404');
}
else {
res.write(data);
}
res.end();
});
}
});
});

server.listen(
8999);