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 禁止选择功能实现代码(兼容IE/Firefox)
Apr 23 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
Sep 05 Javascript
绑定回车enter事件代码
May 18 Javascript
多个checkbox被选中时如何判断是否有自己想要的
Sep 22 Javascript
javascript动态创建及删除元素的方法
Dec 22 Javascript
javascript中Function类型详解
Apr 28 Javascript
js判断移动端是否安装某款app的多种方法
Dec 18 Javascript
AngularJS 应用身份认证的技巧总结
Nov 07 Javascript
Bootstrap3 多选和单选框(checkbox)
Dec 29 Javascript
浅谈vue,angular,react数据双向绑定原理分析
Nov 28 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 jQuery
解决vue项目运行npm run serve报错的问题
Oct 26 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
黑夜路人出的几道php笔试题
2009/08/04 PHP
PHP批量检测并去除文件BOM头代码实例
2014/05/08 PHP
yii的CURD操作实例详解
2014/12/04 PHP
PHP扩展程序实现守护进程
2015/04/16 PHP
PHP解决中文乱码
2017/04/28 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
2017/11/06 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
JavaScript多线程的实现方法
2007/05/08 Javascript
javascript 尚未实现错误解决办法
2008/11/27 Javascript
javascript document.execCommand() 常用解析
2009/12/14 Javascript
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
使用jQuery如何写一个含验证码的登录界面
2019/05/13 jQuery
使用VueCli3+TypeScript+Vuex一步步构建todoList的方法
2019/07/25 Javascript
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
python如何控制进程或者线程的个数
2020/10/16 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
承诺函范文
2015/01/21 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
Laravel中获取IP的真实地理位置
2021/04/01 PHP
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
python内置进制转换函数的操作
2021/06/02 Python
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB
拙作再改《我的收音机情缘》
2022/04/05 无线电