首先需要新建四个文件

一个服务器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">密&nbsp;&nbsp;&nbsp;码</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">密&nbsp;&nbsp;&nbsp;码</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实现简单的登录注册页面的更多相关文章

  1. Centos7 中 Node.js安装简单方法

    最近,我一直对学习Node.js比较感兴趣.下面是小编给大家带来的Centos7 中 Node.js安装简单方法,在此记录一下,方便自己也方便大家,一起看看吧! 安装node.js 登陆Centos ...

  2. javaWeb登录注册页面

    简单的登陆注册页面 1.配置JDBC驱动连接数据库 2. 配置struts2框架 3. 利用1 2完成登录页面, 注意做到不耦合,即servlet Api和控制器完全脱离) 4. 利用1 2 制作注册 ...

  3. Angular之简单的登录注册

    使用Angular实现了一个简单的登录注册的功能........ 涉及到的Angular知识点很少 主要是这个功能的实现...(*^__^*) 嘻嘻…… 里面涉及到的知识点记录: 1.本地存储的操作 ...

  4. 登录注册页面html模版

    登录注册页面html模版 地址:http://download.csdn.net/detail/xiaosongaixiaoqian/5432033

  5. /*用户登录注册页面输入框的设置*/<span>的使用

    <!DOCTYPE html> /*用户登录注册页面输入框的设置*/ <html lang="en"> <head> <meta char ...

  6. 创建node.js一个简单的应用实例

    在node.exe所在目录下,创建一个叫 server.js 的文件,并写入以下代码: //使用 require 指令来载入 http 模块 var http = require("http ...

  7. Python 实现简单的登录注册界面

    Python 实现简单的登录注册界面 注意:编写代码之前需要导入很重要的包 import tkinter as tk import pickle from tkinter import message ...

  8. 带你玩转JavaWeb开发之四 -如何用JS做登录注册页面校验

    今日内容 使用JQuery完成页面定时弹出广告 使用JQuery完成表格的隔行换色 使用JQuery完成复选框的全选效果 使用JQuery完成省市联动效果 使用JQuery完成下列列表左右选择 使用J ...

  9. HTML登录注册页面简单实现

    github:传送门 , 码云: 传送门 效果参考: 登录页面,注册页面 使用了bootstrap,jQuery. 后端使用的CGI处理表单,存入MySQL数据库.(之后更新) 登录页面源码 < ...

随机推荐

  1. JavaEE开发之SpringMVC中的自定义消息转换器与文件上传

    上篇博客我们详细的聊了<JavaEE开发之SpringMVC中的静态资源映射及服务器推送技术>,本篇博客依然是JavaEE开发中的内容,我们就来聊一下SpringMVC中的自定义消息转发器 ...

  2. (函数封装)获取class名称

    使用原生JavaScript,获取类操作符时:即使使用getElementByClassName,在Firefox和IE9以下是不兼容的.Firefox下是可以用它获取的到元素而IE不行,一般框架都会 ...

  3. 关于v-model、v-for、v-on的用法

    展示Holle Vue     window.onload = function(){         var box = new Vue({             el:'#div',      ...

  4. 分针网—每日分享:HTML解析原理

    标准的web前端工程师需要知道 ◎浏览器(或者相应播放器)的渲染/重绘原理   这我得加把劲了.我还真的说的不是很清楚,我就G下,结果不是很多,找到了有一个,就记下来了...   以下部分来自hand ...

  5. 如何使用Handler

    什么是Handler? Handler可以发送和处理消息对象或Runnable对象,这些消息对象和Runnable对象与一个线程相关联.每个Handler的实例都关联了一个线程和线程的消息队列.当创建 ...

  6. Jenkins获取git tags代码

    配置Jenkins获取git tag代码的方式其实方法很多,目前我使用比较多的主要是通过Git Parameter 来配置动态的获取最新tags代码,主要我们首先需要安装一下Git Parameter ...

  7. SG函数学(hua)习(shui)记录

    ---恢复内容开始--- 听说有一个东西叫SG函数 觉得自己好像原来是懂一些粗浅的应用但现在感觉要再深♂入一点呢 让我们先来介绍一下SG函数吧 这是某类满足下列条件的玄学博弈问题解法 双人.回合制: ...

  8. win10+ubuntu17.04双系统安装与卸载(uefi+gpt)及常见软件安装

    换了台笔记本,重新装了下系统.配置是i7 6700hq+gtx965m,重装了下双系统. 之前老机器是大一时候买的,装得是win7+ubuntu19.04(mbr+bios).新机器到手,想法是装了w ...

  9. AsyncTask和Handler

    AsyncTask实现的原理和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口 ...

  10. iOS安全攻防之结构体保护使用

    Objective-C 代码很容易被 hook,因此需要对一些重要的业务逻辑进行保护,可以改用结构体的形式,把函数名隐藏在结构体里,以函数指针成员的形式存储.这样编译后只留了下地址,去掉了名字和参数表 ...