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('404'); }else { res.write(data); } res.end(); }); } }); }); server.listen(8999);