Nodejs登陆注册应用

ⅰ亾dé卋堺 提交于 2020-03-28 02:38:10

1.搭建服务器:
const http = require('http');
const urlLib = require('url');
const querystring = require('querystring');
const fs = require('fs');

http.createServer(function(req,res){ //创建服务器
var str = '';
req.on('data',function(data){
str += data;
});
req.on('end',function(){ //解析数据
const post = querystring.parse(str);
const obj = urlLib.parse(req.url,true);
const get = obj.query;
const url = obj.pathname;
//console.log(url,get,post);

var file_name = './www'+ url;
fs.readFile(file_name,function(err,data){//读取后台文件
if(err){
res.write('404');
}else{
res.write(data);
}
})
});
}).listen(8080);

2.配置接口:
// jiekou.html?user=yang&pass=123 //对文件的访问
//接口: /user?act=reg&user=aaa&pass=123456 {"ok":false,"msg":"原因"} 注册
//接口: /user?act=login&user=aaa&pass=123456 {"ok":true,"msg":"原因"} 登陆


这里有个问题,如果前台请求比如
http://localhost:8080/1.html
http://localhost:8080/ajax.js
http://localhost:8080/1.jpg
这些都是请求文件,如果请求接口
http://localhost:8080/user?act=xx...
这就要分两种情况考虑是对请求文件的访问还是对接口的访问

//对接口的访问if(url=='/user'){  //接口    //判断接口是登陆还是注册    switch(get.act){        case 'reg':  //如果是注册            //1.检查用名是否已经被注册            //2.输入users;            if(users[get.user]){                res.write('{"ok": false, "msg": "此用户已存在"}')            }else{                users[get.user]= get.pass;//插入users                res.write('{"ok": true, "msg": "注册成功"}')            }            break;        case 'login'://如果是登陆            // 1.检查用户是否存在            // 2.检查密码是否正确。            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();}else{        //文件    //读取文件    var file_name = './www'+ url;    fs.readFile(file_name,function(err,data){        if(err){            res.write('404');        }else{            res.write(data);        }        res.end();    })}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!