Node.js实现登陆注册功能

 更新时间:2022年08月25日 10:37:09   作者:哒哒哒Q  
这篇文章主要为大家详细介绍了Node.js实现登陆注册功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Node.js实现登陆注册的具体代码,供大家参考,具体内容如下

1.服务器端

在项目里创建一个json文件用来存储数据,通过express创建服务器对象,fs模块对文件进行读写。

运用post请求

代码如下:

var express = require('express')
var fs = require("fs")
var app = express()
app.use(express.static("www"))
app.use(express.urlencoded({extended:false}))
// 先获取user.json里面的数据和req.body进行对比
fs.readFile("./user.json",function(err,data){
    if (err) {
        userArr = []
    }else{
        userArr = JSON.parse(data)
    }
})
app.post("/zhuce",function(req,res,next){
    // 输入框要验证的数据判断机制:
    // 可以把正则表达式判断放在前端:用户体验好,判断快
    // 也可以把正则表达式判断放在后端:判断相对安全,判断慢
    // console.log(req.body);
    var u = req.body.v1
    var p = req.body.v2
    var isZhuce = userArr.some(function(v,i,a){
        return v.user === u
    })
    if (isZhuce) {
        res.json({
            code:201,
            shibai:"该账号已注册"
        })
    }else{
        userArr.push({user:`${req.body.v1}`,psw:`${req.body.v2}`})
        fs.writeFile("./user.json",JSON.stringify(userArr),function(){
            res.json({
                code:200,
                chenggong:"index2.html"
            }) 
        })
    }
 
})
 
app.post("/denglu",function(req,res,next){
    var deng = userArr.findIndex(function(v,i,a){
            return v.user === req.body.v1
    })
    console.log(deng);
    if (deng != -1) {
        if (userArr[deng].psw === req.body.v2) {
            res.json({
                code:251,
                mima:"登录成功"
            })
        }else{
            res.json({
                code:252,
                mima:"密码错误"
            })
        }
    }else{
        res.json({
            code:250,
            mima:"该账号未注册"
        })
    }
})

 
app.listen(3000,function(){
    console.log("run");
})

2.注册页面

在前端发送post请求传送数据,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>注册界面</title>
</head>
<body>
    <form action="">
        <!-- pattern 正则判断         required 允许输入框提交进行正则判断-->
        用户名:<input type="text" name="user" required id="user" pattern="^1[3578]\d{9}$"><br>
        密 码:<input type="text" name="psw" required id="psw" pattern="^.{6,}$"><br>
        确认密码:<input type="text" name="cpsw" id="cpsw"><br>
        <button id="b1">提交</button>
    </form>
    <script src="./jquery.js"></script>
    <script>
        $("#b1").on("click",function(e){
            e.preventDefault()
            if (psw.value!=cpsw.value) {
                alert("两次密码不一致,傻逼")
                return
            }
            $.post({
                url:"http://127.0.0.1:3000/zhuce",
                data:{
                    v1:user.value,
                    v2:psw.value,
                },
                success:res=>{
                    if (res.shibai) {
                        alert(`${res.shibai}`)
                    }
                    if (res.chenggong) {
                        location.href = `${res.chenggong}`
                    }
                }
 
            })
 
 
        })
    </script>
 
</body>
</html>

3.登录页面

依然使用post请求

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="">
        <!-- pattern 正则判断         required 允许输入框提交进行正则判断-->
        用户名:<input type="text" name="user" required id="user" pattern="^1[3578]\d{9}$">

        密 码:<input type="text" name="psw" required id="psw" pattern="^.{6,}$">

        <button id="b1">提交</button>
    </form>
    <script src="./jquery.js"></script>
    <script>
        $("#b1").click(function(e){
            e.preventDefault()
            $.post({
                url:"http://127.0.0.1:3000/denglu",
                data:{
                    v1:user.value,
                    v2:psw.value,
                },
                success:function(res){
                    console.log(res);
                    alert(`${res.mima}`)
                }
            })
        })
    </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 一步步教你使用node搭建一个小页面

    一步步教你使用node搭建一个小页面

    最近使用NodeJs搭建的小型web应用,所以下面这篇文章主要给大家介绍了关于使用node搭建一个小页面的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • Egret引擎开发指南之创建项目

    Egret引擎开发指南之创建项目

    Egret Engine(白鹭引擎)是一款使用TypeScript语言构建的开源免费的移动游戏引擎。白鹭引擎的核心定位是开放,高效,优雅。通过它,你可以快速地创建HTML5类型的移动游戏,也可以将游戏项目编译输出成为目标移动平台的原生游戏应用。
    2014-09-09
  • node使用request请求的方法

    node使用request请求的方法

    这篇文章主要介绍了node使用request请求的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 利用Node.js和MySQL实现创建API服务器

    利用Node.js和MySQL实现创建API服务器

    这篇文章主要为大家详细介绍了如何使用Node.js和MySQL创建API服务器的步骤,这也是从前端迈向全栈的一个开始,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2024-01-01
  • 基于Alpine Linux构建前端node-web镜像步骤详解

    基于Alpine Linux构建前端node-web镜像步骤详解

    这篇文章主要为大家介绍了基于Alpine Linux构建前端node-web镜像步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • node.js + socket.io 实现点对点随机匹配聊天

    node.js + socket.io 实现点对点随机匹配聊天

    这篇文章主要介绍了node.js + socket.io 实现点对点随机匹配聊天,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Nodejs实战心得之eventproxy模块控制并发

    Nodejs实战心得之eventproxy模块控制并发

    本篇文章给大家分享我的nodejs实战心得,如何使用eventproxy模块控制并发,感兴趣的朋友可以参考下
    2015-10-10
  • 利用node.js搭建简单web服务器的方法教程

    利用node.js搭建简单web服务器的方法教程

    本文主题是使用node来搭建最简单的web服务器,其后可以自己根据需要深入了解,目前在开发过程中可以用来模拟与服务器进行简单的交互,比如返回的资源控制等。需要的朋友可以参考学习,下面来一起看看吧。
    2017-02-02
  • Node.js Streams文件读写操作详解

    Node.js Streams文件读写操作详解

    如果你在处理应用中 I/O 相关的操作,你可以利用 Node.js 中的流(stream),这篇文章主要为大家详细介绍了Node.js Streams文件读写操作,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • 分析node事件循环和消息队列

    分析node事件循环和消息队列

    node的好处毋庸置疑,事件驱动,异步非阻塞I/O,以及处理高并发的能力深入人心,因此大家喜欢用node做一些小型后台服务或者作为中间层和其他服务配合完成一些大型应用场景。
    2021-06-06

最新评论