node.js实现简单的登录注册页面

首先需要新建四个文件

一个服务器js
一个保存数据的txt
一个登陆、一个注册页面html

1.注册页面




    
    regist


    

2.登录页面

 1 
 2 
 3 
 4     
 5     login
 6 
 7 
 8     
9 10
11
12 13
14
15 16 17
18 19 20 48

3.搭建服务器

 1 var http = require("http");
 2 var url = require("url");
 3 var qs = require("querystring");
 4 var fs = require("fs");
 5 
 6 http.createServer(function (req , res) {
 7 //设置请求头
 8     res.setHeader("Access-Control-Allow-Origin","*");
 9     if(req.method == "POST"){
10         //接收发来的用户名和密码
11         var result = "";
12 //获取前端代码发来的路由地址
13         var pathName = url.parse(req.url).pathname;
14         req.addListener("data",function (chunk) {
15             result += chunk;
16         });
17 
18         req.on("end" , function () {
19             var user = qs.parse(result);
20             //判断用户是否存在
21             if(user.username){
22                 fs.readFile("db.txt" , "utf-8" , function (err,data) {
23                     if (!err){
24                         console.log("读取文件成功");
25                         if (!data){
26                             if(pathName == "/login"){
27                                 res.end("该用户不存在");
28                                 return;
29                             }
30 //根据前端发来的路由地址判断是登录还是注册页面,如果是注册页面
31                             if(pathName == "/register"){
32 //创建一个数组一个对象来保存帐号和密码
33                                 var arr = [];
34                                 var obj = {};
35 //把用户的帐号密码保存
36                                 obj.username = user.username;
37                                 obj.password = user.password;
38                                 arr.push(obj);
39 //同步写入db.txt文件,必须是同步进行
40                                 fs.writeFileSync("db.txt" , JSON.stringify(arr) , "utf-8");
41                                 res.end("注册成功!");
42                                 return;
43                             }
44                         }else {
45                             console.log("文件中有数据");
46 //把数据转成JSON对象,以便我们使用
47                             var arr = JSON.parse(data);
48 //遍历整个保存数据的数组  判断登录注册
49                             for(var i = 0;i < arr.length;i++){
50                                 var obj = arr[i];
51                                 if(obj.username == user.username){
52                                     if(pathName == "/login"){
53                                         if (obj.password == user.password){
54                                             res.end("登录成功!");
55                                             return;
56                                         }else {
57                                             res.end("密码错误!");
58                                             return;
59                                         }
60                                     }
61                                     if(pathName == "/register"){
62                                         res.end("该用户已存在!");
63                                         return;
64                                     }
65                                 }
66                             }
67                             if(pathName == "/login"){
68                                 res.end("用户名不存在!");
69                                 return;
70                             }
71                             if(pathName == "/register"){
72 //创建新对象写入数据
73                                 var obj = {};
74                                 obj.username = user.username;
75                                 obj.password = user.password;
76                                 arr.push(obj);
77                                 fs.writeFileSync("db.txt" , JSON.stringify(arr) , "utf-8");
78                                 res.end("注册成功!");
79                                 return;
80                             }
81                         }
82                     }else {
83                         console.log("读取文件失败");
84                     }
85                 })
86             }
87         });
88     }else {
89         res.end("get请求");
90     }
91 }).listen(3000 , function (err) {
92     if (!err){
93         console.log("服务器启动成功,正在监听port3000...");
94     }
95 });

4.在db.txt文件中可以查看注册信息

------end------

你可能感兴趣的:(node.js实现简单的登录注册页面)