zoukankan      html  css  js  c++  java
  • Nodejs登陆注册应用

    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();
    })
    }
    目标很遥远,但是如果你拼了命努力,即使到最后没有达到目标,但是你会发现,在某种程度上你已经成功了。
  • 相关阅读:
    eCryptfs文件系统测试
    体验企业级网络管理软件(图片加视频)
    基于Linux2.6内核的加密容器法保护文件方法
    Orion Network Performance Monitor 软件在网络管理中的应用
    两款硬件代理服务器产品之比较
    3Com Network Supervisor与IBM Tivoli NetView两款网管软件操作视频
    成为IBM精英讲师-一分耕耘 一份收获 同时也多了一份责任!
    Hp Open View安装使用视频
    在Fedora 14 alpha 下测试Kvm情况(视频)
    ACM模板——分数类
  • 原文地址:https://www.cnblogs.com/Cavalary/p/9280059.html
Copyright © 2011-2022 走看看