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中对于DOM的加强
Apr 11 Javascript
jquery阻止后续事件只执行第一个事件
Jul 24 Javascript
ie8模式下click无反应点击option无反应的解决方法
Oct 11 Javascript
javascript实现控制浏览器全屏
Mar 30 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
May 18 Javascript
jQuery入门之层次选择器实例简析
Dec 11 Javascript
JS中的BOM应用
Feb 02 Javascript
Vue自定义弹窗指令的实现代码
Aug 13 Javascript
JavaScript中filter的用法实例分析
Feb 27 Javascript
js canvas实现星空连线背景特效
Nov 01 Javascript
JS脚本实现定时到网站上签到/签退功能
Apr 22 Javascript
vue3.0生命周期的示例代码
Sep 24 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
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
JS保存和删除cookie操作 判断cookie是否存在
2013/11/13 Javascript
javascript 获取iframe里页面中元素值的方法
2014/02/17 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
JQuery中serialize() 序列化
2015/03/13 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
Element Input组件分析小结
2018/10/11 Javascript
JS 验证码功能的三种实现方式
2018/11/26 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
Python threading.local代码实例及原理解析
2020/03/16 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
2014年师德师风学习材料
2014/05/16 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
基层党员对照检查材料
2014/09/24 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
《珍珠鸟》教学反思
2016/02/16 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
详解Vue3使用axios的配置教程
2022/04/29 Vue.js
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS