最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js實現(xiàn)登錄注冊頁面

 更新時間:2022年04月26日 14:56:39   作者:bestjarvan  
這篇文章主要為大家詳細(xì)介紹了node.js實現(xiàn)簡單的登錄注冊頁面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了node.js登錄注冊頁面展示的具體代碼,供大家參考,具體內(nèi)容如下

首先需要新建四個文件

一個服務(wù)器js

一個保存數(shù)據(jù)的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">密&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("請輸入內(nèi)容!");
      }
      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、搭建服務(wù)器

var http = require("http");
var url = require("url");
var qs = require("querystring");
var fs = require("fs");

http.createServer(function (req , res) {
//設(shè)置請求頭
  res.setHeader("Access-Control-Allow-Origin","*");
  if(req.method == "POST"){
    //接收發(fā)來的用戶名和密碼
    var result = "";
//獲取前端代碼發(fā)來的路由地址
    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;
              }
//根據(jù)前端發(fā)來的路由地址判斷是登錄還是注冊頁面,如果是注冊頁面
              if(pathName == "/register"){
//創(chuàng)建一個數(shù)組一個對象來保存帳號和密碼
                var arr = [];
                var obj = {};
//把用戶的帳號密碼保存
                obj.username = user.username;
                obj.password = user.password;
                arr.push(obj);
//同步寫入db.txt文件,必須是同步進(jìn)行
                fs.writeFileSync("db.txt" , JSON.stringify(arr) , "utf-8");
                res.end("注冊成功!");
                return;
              }
            }else {
              console.log("文件中有數(shù)據(jù)");
//把數(shù)據(jù)轉(zhuǎn)成JSON對象,以便我們使用
              var arr = JSON.parse(data);
//遍歷整個保存數(shù)據(jù)的數(shù)組 判斷登錄注冊
              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"){
//創(chuàng)建新對象寫入數(shù)據(jù)
                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("服務(wù)器啟動成功,正在監(jiān)聽port3000...");
  }
});

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

 以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Node.js中下包速度慢問題解決方法分析

    Node.js中下包速度慢問題解決方法分析

    這篇文章主要介紹了Node.js中下包速度慢問題解決方法,分析了npm切換鏡像源以及nrm工具鏡像源管理相關(guān)使用技巧,需要的朋友可以參考下
    2023-04-04
  • NodeJS 實現(xiàn)多語言的示例代碼

    NodeJS 實現(xiàn)多語言的示例代碼

    這篇文章主要介紹了NodeJS 實現(xiàn)多語言的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Node.js基礎(chǔ)入門之緩存區(qū)與文件操作詳解

    Node.js基礎(chǔ)入門之緩存區(qū)與文件操作詳解

    Node.js是一個基于Chrome?V8引擎的JavaScript運(yùn)行時。類似于Java中的JRE,.Net中的CLR。本文將詳細(xì)為大家介紹Node.js中的緩存區(qū)與文件操作,感興趣的可以了解一下
    2022-03-03
  • Node.js項目依賴問題的詳細(xì)解決步驟

    Node.js項目依賴問題的詳細(xì)解決步驟

    在現(xiàn)代前端開發(fā)中,Node.js 和 npm 是不可或缺的工具,然而,隨著項目的迭代和依賴包的更新,我們常常會遇到依賴沖突、構(gòu)建失敗等問題,本文將通過一個實際案例,詳細(xì)講解如何解決 Node.js 項目中的依賴問題,包括升級 Node.js 和 npm、替換過時的依賴包、修復(fù)構(gòu)建錯誤等
    2025-02-02
  • Nodejs?Sequelize手冊學(xué)習(xí)快速入門到應(yīng)用

    Nodejs?Sequelize手冊學(xué)習(xí)快速入門到應(yīng)用

    這篇文章主要為大家介紹了Nodejs?Sequelize手冊學(xué)習(xí)快速入門到應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • node.js+express留言板功能實現(xiàn)示例

    node.js+express留言板功能實現(xiàn)示例

    本文介紹基于nodejs+express+art-template的留言板功能。包含列表界面、添加界面和發(fā)送留言功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 如何利用nodejs實現(xiàn)命令行游戲

    如何利用nodejs實現(xiàn)命令行游戲

    這篇文章主要給大家介紹了關(guān)于如何利用nodejs實現(xiàn)命令行游戲的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 詳解nodejs中exports和module.exports的區(qū)別

    詳解nodejs中exports和module.exports的區(qū)別

    本文主要介紹了exports 和 module.exports 的區(qū)別。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • pnpm的安裝和使用指南(推薦!)

    pnpm的安裝和使用指南(推薦!)

    如果你覺得npm比較慢,又不想用yarn,那么pnpm是一個很好的選擇,下面這篇文章主要給大家介紹了關(guān)于pnpm的安裝和使用的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • nodemon實現(xiàn)Typescript項目熱更新的示例代碼

    nodemon實現(xiàn)Typescript項目熱更新的示例代碼

    這篇文章主要介紹了nodemon實現(xiàn)Typescript項目熱更新的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11

最新評論

临江市| 阿巴嘎旗| 和平区| 临江市| 奈曼旗| 阳江市| 汝阳县| 安义县| 和政县| 远安县| 醴陵市| 蕉岭县| 林周县| 会宁县| 望奎县| 南皮县| 康保县| 游戏| 乳源| 天津市| 临泽县| 泸州市| 普安县| 陆丰市| 宁远县| 浠水县| 崇文区| 双辽市| 崇明县| 怀柔区| 措勤县| 田阳县| 砀山县| 阿瓦提县| 临潭县| 遂平县| 陇南市| 盘锦市| 两当县| 泰和县| 闸北区|