node.js实现登录注册页面


Posted in Javascript onApril 08, 2017

本文实例为大家分享了node.js登录注册页面展示的具体代码,供大家参考,具体内容如下

首先需要新建四个文件

一个服务器js

一个保存数据的txt

一个登陆、一个注册页面html

1、注册页面

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>regist</title>
</head>
<body>
  <div>
    <label for="user">用户名</label><input type="text" id="user">
  </div>
  <div>
    <label for="password">密   码</label><input type="password" id="password">
  </div>
  <div>
    <button id="register">注册</button>
  </div>
</body>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>
  $(function () {
    $("#register").click(function () {
      $.ajax({
        url:"http://localhost:3000/register",
        type:"POST",
        data:{
          username:$("#user").val(),
          password:$("#password").val()
        },
        success:function (res) {
          alert(res);
        },
        error:function (err) {
          console.log(err);
        }
      })
    })
  });
</script>
</html>

2、登录界面

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>login</title>
</head>
<body>
  <div>
    <label for="user">用户名</label><input type="text" id="user">
  </div>
  <div>
    <label for="password">密   码</label><input type="password" id="password">
  </div>
  <div>
    <button id="login">登录</button>
    <button id="register"><a href="regist.html">注册</a></button>
  </div>
</body>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>
  $(function () {
    $("#login").click(function () {
      if ($("#user").val().length == 0){
        return alert("请输入内容!");
      }
      if ($("#password").val().length == 0){
        return alert("请输入密码!");
      }

      $.ajax({
        url:"http://localhost:3000/login",
        type:"POST",
        data:{
          username:$("#user").val(),
          password:$("#password").val()
        },
        success:function (res) {
          alert("登录成功!")
        },
        error:function (err) {
          console.log(err);
        }
      })

    })
  });
</script>
</html>

3、搭建服务器

var http = require("http");
var url = require("url");
var qs = require("querystring");
var fs = require("fs");

http.createServer(function (req , res) {
//设置请求头
  res.setHeader("Access-Control-Allow-Origin","*");
  if(req.method == "POST"){
    //接收发来的用户名和密码
    var result = "";
//获取前端代码发来的路由地址
    var pathName = url.parse(req.url).pathname;
    req.addListener("data",function (chunk) {
      result += chunk;
    });

    req.on("end" , function () {
      var user = qs.parse(result);
      //判断用户是否存在
      if(user.username){
        fs.readFile("db.txt" , "utf-8" , function (err,data) {
          if (!err){
            console.log("读取文件成功");
            if (!data){
              if(pathName == "/login"){
                res.end("该用户不存在");
                return;
              }
//根据前端发来的路由地址判断是登录还是注册页面,如果是注册页面
              if(pathName == "/register"){
//创建一个数组一个对象来保存帐号和密码
                var arr = [];
                var obj = {};
//把用户的帐号密码保存
                obj.username = user.username;
                obj.password = user.password;
                arr.push(obj);
//同步写入db.txt文件,必须是同步进行
                fs.writeFileSync("db.txt" , JSON.stringify(arr) , "utf-8");
                res.end("注册成功!");
                return;
              }
            }else {
              console.log("文件中有数据");
//把数据转成JSON对象,以便我们使用
              var arr = JSON.parse(data);
//遍历整个保存数据的数组 判断登录注册
              for(var i = 0;i < arr.length;i++){
                var obj = arr[i];
                if(obj.username == user.username){
                  if(pathName == "/login"){
                    if (obj.password == user.password){
                      res.end("登录成功!");
                      return;
                    }else {
                      res.end("密码错误!");
                      return;
                    }
                  }
                  if(pathName == "/register"){
                    res.end("该用户已存在!");
                    return;
                  }
                }
              }
              if(pathName == "/login"){
                res.end("用户名不存在!");
                return;
              }
              if(pathName == "/register"){
//创建新对象写入数据
                var obj = {};
                obj.username = user.username;
                obj.password = user.password;
                arr.push(obj);
                fs.writeFileSync("db.txt" , JSON.stringify(arr) , "utf-8");
                res.end("注册成功!");
                return;
              }
            }
          }else {
            console.log("读取文件失败");
          }
        })
      }
    });
  }else {
    res.end("get请求");
  }
}).listen(3000 , function (err) {
  if (!err){
    console.log("服务器启动成功,正在监听port3000...");
  }
});

4、在db.txt文件中可以查看注册信息

node.js实现登录注册页面

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 学习小结(适合新手参考)
Jul 30 Javascript
js confirm()方法的使用方法实例
Jul 13 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
Aug 04 Javascript
JavaScript 模块化编程(笔记)
Apr 08 Javascript
Jquery中基本选择器用法实例详解
May 18 Javascript
js+html5实现canvas绘制圆形图案的方法
Jun 05 Javascript
浅谈Node.js:Buffer模块
Dec 05 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
Jan 09 Javascript
Vue-Router实现页面正在加载特效方法示例
Feb 12 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
May 03 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
Jan 18 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
Mar 28 Javascript
详解vue2路由vue-router配置(懒加载)
Apr 08 #Javascript
js仿微信公众平台打标签功能
Apr 08 #Javascript
详解node.js搭建代理服务器请求数据
Apr 08 #Javascript
无循环 JavaScript(map、reduce、filter和find)
Apr 08 #Javascript
JavaScript中的遍历详解(多种遍历)
Apr 07 #Javascript
分享十三个最佳JavaScript数据网格库
Apr 07 #Javascript
Google 爬虫如何抓取 JavaScript 的内容
Apr 07 #Javascript
You might like
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
2016/03/16 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
2019/09/26 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
浅析JavaScript 函数柯里化
2020/09/08 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
python 使用sys.stdin和fileinput读入标准输入的方法
2018/10/17 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
Python简单处理坐标排序问题示例
2019/07/11 Python
python 实现目录复制的三种小结
2019/12/04 Python
python 模拟登陆github的示例
2020/12/04 Python
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
Nike澳大利亚官网:Nike.com (AU)
2019/06/03 全球购物
MySQL面试题目集锦
2016/04/14 面试题
护士自我介绍信
2014/01/13 职场文书
美容院考勤制度
2014/01/30 职场文书
吨的认识教学反思
2014/04/27 职场文书
黄埔军校观后感
2015/06/10 职场文书
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
利用Pycharm连接服务器的全过程记录
2021/07/01 Python
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫