先说一下这个简易服务器所能实现的功能:
实现一个简单的用户登录、注册。
直接上图:
1.(没有注册之前点击登录的效果)
2.(点击注册时的截图如下)
3.(输入正确的用户名密码,点击登录时的界面)
4.(输入错误的密码,点击登录):
以下是服务器的具体代码:
//先是请求了node的 http、fs、url、querystring模块
const http = require("http");
const fs = require('fs');
const urlLib = require('url');
const querysting = require('querystring');
var users = {}; //users是用来接收json文件的变量 例如{"liming":"123456","zhangsan":"123456"...}
http.createServer(function(req, res) {
var obj = urlLib.parse(req.url, true);
var url = obj.pathname;
const GET = obj.query;
//解析数据
var str = ''; //用来存data
req.on('data', function(data) {
str += data;
});
req.on('end', function() {
const POST = querysting.parse(str);
console.log(url, GET, POST);
//区分--接口、文件
if (url == '/user') { //接口
switch (GET.act) { //检测到有2个事件:reg为注册事件,login为登录事件
case 'reg':
//1.检查用户是否存在
if (users[GET.user]) {
res.write('{"ok":false,"msg":"此用户已存在"}');
} else {
//2.插入users中
users[GET.user] = GET.pass;
res.write('{"ok":true,"msg":"注册成功"}');
}
break;
case 'login':
if (users[GET.user] == null) {
//1.检查用户是否存在
res.write('{"ok":false,"msg":"此用户不存在"}')
} else if (users[GET.user] != GET.pass) {
//2.检查用户密码
res.write('{"ok":false,"msg":"用户名或密码错误"}');
} else {
res.write('{"ok":true,"msg":"登录成功"}');
}
break;
default:
res.write('{"ok":false,"msg":"未知的act"}');
}
res.end();
} else { //文件
//文件请求
var file_name = './www' + url;
fs.readFile(file_name, function(err, data) {
if (err) {
res.write('404');
} else {
res.write(data);
}
res.end();
});
}
});
}).listen(8081);
以上是server.js文件 ,至于html文件就是开头的登录按钮和注册按钮分别加了点击事件,期间用了ajax框架。
ok就先到这里吧!刚刚开始写,就当笔记用了!