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 相关文章推荐
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
May 25 Javascript
js实现在文本框光标处添加字符的方法介绍
Nov 24 Javascript
使用js解决由border属性引起的div宽度问题
Nov 26 Javascript
根据当前时间在jsp页面上显示上午或下午
Aug 18 Javascript
AngularJS使用ngMessages进行表单验证
Dec 27 Javascript
JQuery实现网页右侧随动广告特效
Jan 17 Javascript
jQuery Mobile页面返回不需要重新get
Apr 26 Javascript
Angular Module声明和获取重载实例代码
Sep 14 Javascript
Asp.Net之JS生成分页条的方法
Nov 23 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
Aug 15 Javascript
JavaScript正则表达式和级联效果
Sep 14 Javascript
JS实现的base64加密解密操作示例
Apr 18 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更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
2013/05/23 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
php中关于换行的实例写法
2019/09/26 PHP
javascript 原型继承介绍
2011/08/30 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
Python脚本后台运行的几种方式
2015/03/09 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
JavaScript代码实现txt文件的上传预览功能
2018/03/27 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
JS验证输入的是否是数字及保留几位小数问题
2018/05/09 Javascript
vue学习之Vue-Router用法实例分析
2020/01/06 Javascript
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
python创建文件备份的脚本
2018/09/11 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
python else语句在循环中的运用详解
2020/07/06 Python
HTML5标签大全
2016/11/23 HTML / CSS
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
电子商务专业应届生求职信
2014/05/28 职场文书
司法助理专业自荐书
2014/06/13 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
齐云山导游词
2015/02/06 职场文书
司机岗位职责范本
2015/04/10 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
百万英镑观后感
2015/06/09 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle