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();
???})
}
Nodejs登陆注册应用
原文地址:https://www.cnblogs.com/Cavalary/p/9280059.html