zoukankan      html  css  js  c++  java
  • nodejs制作简单的登录注册页面

    首先,我用的是mysql数据库,我现在比较熟悉的就是它了,,我现在存不了中文数据╥﹏╥...

    先建立数据库,创建接下来要填写的信息的列

    先建立首页,两个按钮:

    没错,是有点丑。。。其实这是朴素

    登录按钮连接 "register.html",注册按钮连接"login.html";两个页面大概就长这样。。。。也很简朴。。。。

          

    两个都是form表单,首先注册。。。填完数据后就跳转到登录界面

    js文件:

    app.post('/login.html',function(req,res){
        var postData = "";
        req.addListener("data",function(postDataChunk){
            postData += postDataChunk;
        });
        req.addListener("end",function(){
            console.log("数据接收完毕!");
            var json = qs.parse(postData);
            nextId +=1;
            console.log('nextId:'+nextId);
            var  userAddSql = "INSERT INTO `users`.`userinfo` (`id`,`name`, `password`, `age`,`sex`, `tel`,`nickname`) VALUES ('"+nextId+"','"+json.name+"','"+json.password+"','"+json.age+"','"+json.sex+"','"+json.tel+"','"+json.nickname+"')";
            connect.query(userAddSql,function (err,mysqldata) {
                if(err) throw err;
                console.log('数据存入成功!');
            });
            fs.readFile('login.html',function(err,data){
                if(err){
                    throw err;
                }else{
                    res.end(data);
                }
            });
            res.setHeader('Content-Type','text/html');
        });
    });

    在此之前,为了使每次存入的id都自加,运行js文件时,就读取数据库里最大的id,在它的基础上自加。(当然,这个方法有点笨,希望大神指点一下)

    var  userAddSql_Params = "SELECT * FROM users.userinfo";
    
    connect.query(userAddSql_Params, function(err, rows) {
        if (err) throw err;
        for (var i = 0; i < rows.length; i++) {
            var list = {
                id : rows[i].id,
                name : rows[i].name,
                password : rows[i].password,
                age : rows[i].age,
                sex : rows[i].sex,
                tel : rows[i].tel,
                nickname : rows[i].nickname
            };
            arr[i] = list;
        }
        idnum();
    });
    
    function idnum(){
        var arr2=[];
        for(var i = 0;i<arr.length;i++){
            arr2[i]=arr[i].id;
        }
        arr2.sort(function(a,b){return b-a});
        console.log('数据输出。。。');
        nextId=arr2[0]+1;
    }

    然后就是登录啦~~~填写登录用户名和密码点击按钮,提交数据,后台获取登录信息,与数据库里的用户名密码一一匹配,一旦有相符的,就登陆成功,跳转至 ''home.html'页面,并显示该用户的所有注册信息;如果没有匹配成功,跳转至 ''home.html'页面,显示登陆失败。

    app.post('/home.html',function(req,res){
        var postData2 = "";
        req.addListener("data",function(postDataChunk){
            postData2 += postDataChunk;
        });
        req.addListener("end",function(){
            console.log("数据接收完毕!");
    
            connect.query(userAddSql_Params, function(err, rows) {
                if (err) throw err;
                for (var i = 0; i < rows.length; i++) {
                    var list = {
                        id : rows[i].id,
                        name : rows[i].name,
                        password : rows[i].password,
                        age : rows[i].age,
                        sex : rows[i].sex,
                        tel : rows[i].tel,
                        nickname : rows[i].nickname
                    };
                    arr[i] = list;
                }
                flag = judges(postData2);        //判断用户名和密码是否正确
                console.log('判断密码是否匹配:'+flag);
            });
    
            fs.readFile('home.html',function(err,data){
                if(!flag){
                    data = '<h2><a href="login.html">用户名或密码错误!点击这里重新登录</a></h2>';
                    console.log('登录失败!');
                }else{
                    data = '<ul style="list-style: none">'+'<li>登陆成功!</li>'+
                    '<li>用户名:'+arr[list_num].name+'</li>'+
                    '<li>昵称:'+arr[list_num].nickname+'</li>'+
                    '<li>密码:'+arr[list_num].password+'</li>'+
                    '<li>年龄:'+arr[list_num].age+'</li>'+
                    '<li>性别:'+arr[list_num].sex+'</li>'+
                    '<li>手机号:'+arr[list_num].tel+'</li>'+
                    '</ul>'
                }
                if(err){
                    throw err;
                }else{
                    res.end(data);
                }
            });
            res.setHeader('Content-Type','text/html');
        });
    });

    不知道'home.html'页面如何获取数据库的内容,所以只能用字符串拼接

    function judges(post){
        var json = qs.parse(post);
        console.log('当前需匹配的信息:',json);
        for(var s = 0;s<arr.length;s++){
            if((arr[s].name==json.name)&&(arr[s].password==json.password)){       //当用户名和密码都一致时,return flag
                list_num = s;
                flag = true;
                return flag;
            }else{
                flag = false;
            }
        }
    }
  • 相关阅读:
    1.1 js 预解释(变量的提升,浏览器的加载机制)
    js 原型链详解
    ES6模块 与 CommonJS的差异
    export,import,export default,import()区别
    css权重优先级
    CSS3如何实现0.5边框
    JS 时间戳转换成具体时间
    http协议(二)请求和响应报文的构成
    http协议(一)一些基础知识
    mac homebrew  常用命令
  • 原文地址:https://www.cnblogs.com/javencs/p/6606214.html
Copyright © 2011-2022 走看看