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 相关文章推荐
类似框架的js代码
Nov 09 Javascript
jQuery 判断页面元素是否存在的代码
Aug 14 Javascript
jQuery对表单的操作代码集合
Apr 06 Javascript
Javascript表格翻页效果的具体实现
Oct 05 Javascript
JS调试必备的5个debug技巧
Mar 07 Javascript
jQuery实现购物车数字加减效果
Mar 14 Javascript
Javascript 跨域知识详细介绍
Oct 30 Javascript
vue2.0父子组件及非父子组件之间的通信方法
Jan 21 Javascript
JavaScript闭包和回调详解
Aug 09 Javascript
vue $set 给数据赋值的实例
Nov 09 Javascript
es6 super关键字的理解与应用实例分析
Feb 15 Javascript
Vue项目利用axios请求接口下载excel
Nov 17 Vue.js
详解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
PHP字符串的连接的简单实例
2013/12/30 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
2019/03/01 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
YUI的Tab切换实现代码
2010/04/11 Javascript
javascript中&quot;/&quot;运算符常见错误
2010/10/13 Javascript
js字符编码函数区别分析
2011/12/28 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
2014/07/18 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
jQuery新窗口打开外链接
2016/07/21 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
AngularJS页面传参的5种方式
2017/04/01 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
小程序新版订阅消息模板消息
2019/12/31 Javascript
js属性对象的hasOwnProperty方法的使用
2021/02/05 Javascript
Python实现12306火车票抢票系统
2019/07/04 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
外贸英语毕业生自荐信
2013/11/14 职场文书
优秀生推荐信范文
2013/11/28 职场文书
小加工厂管理制度
2014/01/21 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
房屋授权委托书范本
2014/10/07 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
Java Dubbo框架知识点梳理
2021/06/26 Java/Android
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers