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

Node.js實現(xiàn)登錄注冊功能

 更新時間:2022年04月26日 15:31:58   作者:Cabu_husky  
這篇文章主要為大家詳細介紹了Node.js實現(xiàn)登錄注冊功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Node.js實現(xiàn)登錄注冊功能的具體代碼,供大家參考,具體內(nèi)容如下

目錄結(jié)構

注冊頁面:

reg.html

<!DOCTYPE html>
<html lang="en">
<head>
? ? <meta charset="UTF-8">
? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">
? ? <title></title>
? ? <link rel="stylesheet" href="./src/css/reg.css">
</head>
<body>
? ? <div class="reg">
? ? ? ? <h1>用戶注冊</h1>
? ? ? ? <p>
? ? ? ? ? ? <label for="">用戶名:</label>
? ? ? ? ? ? <input type="text" id="username">
? ? ? ? </p>
? ? ? ? <p>
? ? ? ? ? ? <label for="">密&emsp;碼:</label>
? ? ? ? ? ? <input type="text" id="password">
? ? ? ? </p>
? ? ? ? <button>注冊</button>
? ? </div>
</body>
</html>
<script src="./node_modules/jquery/dist/jquery.js"></script>
<script>
?? ?//點擊注冊發(fā)送ajax請求
? ? $('button').eq(0).on('click',()=>{
? ? ? ? $.ajax({
? ? ? ? ? ? url: '/register',
? ? ? ? ? ? type: 'POST',
? ? ? ? ? ? data: {
? ? ? ? ? ? ? ? username : $('#username').val(),
? ? ? ? ? ? ? ? password : $('#password').val()
? ? ? ? ? ? },
? ? ? ? ? ? success: function(res){
? ? ? ? ? ? ? ? switch (res) {
? ? ? ? ? ? ? ? ? ? case '1':
? ? ? ? ? ? ? ? ? ? ? ? alert('成功');
? ? ? ? ? ? ? ? ? ? ? ? window.location.href = "./login.html";
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case '2':
? ? ? ? ? ? ? ? ? ? ? ? alert('失敗');
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case '3':
? ? ? ? ? ? ? ? ? ? ? ? alert('重名');
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case '4':
? ? ? ? ? ? ? ? ? ? ? ? alert('未知錯誤');
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? }?
? ? ? ? ? ? }
? ? ? ? })
? ? })
</script>

登錄頁面:

login.html

<!DOCTYPE html>
<html lang="en">
<head>
? ? <meta charset="UTF-8">
? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">
? ? <title></title>
? ? <link rel="stylesheet" href="./src/css/reg.css">
</head>
<body>
? ? <div class="reg">
? ? ? ? <h1>用戶登錄</h1>
? ? ? ? <p>
? ? ? ? ? ? <label for="">用戶名:</label>
? ? ? ? ? ? <input type="text" id="username">
? ? ? ? </p>
? ? ? ? <p>
? ? ? ? ? ? <label for="">密&emsp;碼:</label>
? ? ? ? ? ? <input type="text" id="password">
? ? ? ? </p>
? ? ? ? <button>登錄</button>
? ? </div>
</body>
</html>

<script src="./node_modules/jquery/dist/jquery.js"></script>
<script>
?? ?//點擊登錄發(fā)送ajax請求
? ? $('button').eq(0).on('click',()=>{
? ? ? ? $.ajax({
? ? ? ? ? ? url: '/login',
? ? ? ? ? ? type: 'GET',
? ? ? ? ? ? data: {
? ? ? ? ? ? ? ? username: $('#username').val(),
? ? ? ? ? ? ? ? password: $('#password').val()
? ? ? ? ? ? },
? ? ? ? ? ? success: function(res){
? ? ? ? ? ? ? ? console.log(res);
? ? ? ? ? ? ? ? switch (res){
? ? ? ? ? ? ? ? ? ? case '1':
? ? ? ? ? ? ? ? ? ? ? ? alert('成功');
? ? ? ? ? ? ? ? ? ? ? ? window.location.href = "./index.html";
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case '2':
? ? ? ? ? ? ? ? ? ? ? ? alert('失敗');
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case '3':
? ? ? ? ? ? ? ? ? ? ? ? alert('密碼錯誤');
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case '4':
? ? ? ? ? ? ? ? ? ? ? ? alert('未知錯誤');
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? })
? ? })
</script>

app.js

const http = require("http");
const fs = require("fs");
const url = require("url");
const querystring = require("querystring");
const post = 3000;
//通過http模塊創(chuàng)建服務器,并監(jiān)聽端口3000
const server = http.createServer();
server.on("request",(req,res)=>{
? ? const dataurl = url.parse(req.url);
? ? //靜態(tài)伺服
? ? //默認進入reg.html頁面?
? ? if((req.url == "/" || req.url == "/reg.html") && req.method == "GET" && req.url != "/favicon.ico"){
? ? ? ? fs.readFile("./reg.html","utf8",(err,data)=>{
? ? ? ? ? ? if(err){
? ? ? ? ? ? ? ? fs.readFile("./404.html","utf8",(err,data)=>{
? ? ? ? ? ? ? ? ? ? res.end(data);
? ? ? ? ? ? ? ? })
? ? ? ? ? ? }
? ? ? ? ? ? res.setHeader("Content-type","text/html");
? ? ? ? ? ? res.end(data);
? ? ? ? })
? ? //讀取login.html
? ? }else if(req.url == "/login.html" && req.method == "GET"){
? ? ? ? fs.readFile("./login.html","utf8",(err,data)=>{
? ? ? ? ? ? if(err){
? ? ? ? ? ? ? ? fs.readFile("./404.html","uft8",(err,data)=>{
? ? ? ? ? ? ? ? ? ? res.end(data);
? ? ? ? ? ? ? ? })
? ? ? ? ? ? }
? ? ? ? ? ? res.setHeader("Content-type","text/html");
? ? ? ? ? ? res.end(data);
? ? ? ? })
? ? //讀取index.html
? ? }else if(req.url == "/index.html" && req.method == "GET"){
? ? ? ? fs.readFile("./index.html","utf8",(err,data)=>{
? ? ? ? ? ? if(err){
? ? ? ? ? ? ? ? fs.readFile("./404.html","uft8",(err,data)=>{
? ? ? ? ? ? ? ? ? ? res.end(data);
? ? ? ? ? ? ? ? })
? ? ? ? ? ? }
? ? ? ? ? ? res.setHeader("Content-type","text/html");
? ? ? ? ? ? res.end(data);
? ? ? ? })
? ? //讀取reg.css
? ? }else if(req.url == "/src/css/reg.css" && req.method == "GET"){
? ? ? ? fs.readFile("src/css/reg.css","utf8",(err,data)=>{
? ? ? ? ? ? if(err){
? ? ? ? ? ? ? ? console.log(err);
? ? ? ? ? ? }
? ? ? ? ? ? res.setHeader("Content-type","text/css");
? ? ? ? ? ? res.end(data);
? ? ? ? })
? ? //讀取jquery
? ? }else if(req.url == "/node_modules/jquery/dist/jquery.js" && req.method == "GET"){
? ? ? ? fs.readFile("./node_modules/jquery/dist/jquery.js","utf8",(err,data)=>{
? ? ? ? ? ? if(err){
? ? ? ? ? ? ? ? console.log(err);
? ? ? ? ? ? }
? ? ? ? ? ? res.end(data);
? ? ? ? })
? ? }
})
server.listen(post);

注冊接口:

/register

else if(req.url == "/register" && req.method == "POST"){
? let str = '';
? ? req.on('data',(chunk)=>{
? ? ? ? str += chunk;
? ? })
? ? req.on('end',()=>{
? ? ? ? let dataObj = querystring.parse(str);
? ? ? ? fs.readFile("./data.json","utf8",(err,data)=>{
? ? ? ? ? ? let obj = JSON.parse(data); ??
? ? ? ? ? ? for(let i = 0; i < obj.length; i++){
? ? ? ? ? ? ? ? if(obj[i].username == dataObj.username){
? ? ? ? ? ? ? ? ? ? return res.end('3');
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? obj.push(dataObj);
? ? ? ? ? ? fs.writeFile('./data.json',JSON.stringify(obj),'utf8',(err,result)=>{
? ? ? ? ? ? ? ? if(err){
? ? ? ? ? ? ? ? ? ? return res.end('2');
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? return res.end('1');
? ? ? ? ? ? })
? ? ? ? })
? ? })
}

登錄接口:

/login

else if(dataurl.pathname == "/login" && req.method == "GET"){
? ?console.log(dataurl);
? ? var userInput = querystring.parse(dataurl.query);
? ? fs.readFile("./data.json","utf8",(err,data)=>{
? ? ? ? let obj = JSON.parse(data);
? ? ? ? for(let i = 0; i < obj.length; i++){
? ? ? ? ? ? if(obj[i].username == userInput.username && obj[i].password == userInput.password){
? ? ? ? ? ? ? ? return res.end('1');
? ? ? ? ? ? }else if(obj[i].username == userInput.username && obj[i].password != userInput.password){
? ? ? ? ? ? ? ? return res.end('3');
? ? ? ? ? ? }
? ? ? ? }
? ? })
}

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

相關文章

  • Node.JS中事件輪詢(Event Loop)的解析

    Node.JS中事件輪詢(Event Loop)的解析

    對NodeJs的事情輪詢機造一孔之見。查閱了些許材料后,總算掀開了其神奇的里紗。下面這篇文章主要介紹了Node.JS中事件輪詢(Event Loop)的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • npm?install報錯unable?to?resolve?dependency?tree的解決辦法

    npm?install報錯unable?to?resolve?dependency?tree的解決辦法

    在開發(fā)過程中經(jīng)常會使用npm安裝依賴包來加速開發(fā),但是在執(zhí)行npm install命令時,有時會遇到各種錯誤,下面這篇文章主要給大家介紹了關于npm?install報錯unable?to?resolve?dependency?tree的解決辦法,需要的朋友可以參考下
    2023-05-05
  • Node.js+Express配置入門教程

    Node.js+Express配置入門教程

    Node.js是一個Javascript運行環(huán)境(runtime)。本文給大家介紹Node.js+Express配置入門教程,值得推薦給大家,感興趣的朋友一起學習吧
    2016-05-05
  • npm一鍵安裝Python以及node-sass依賴環(huán)境的方法

    npm一鍵安裝Python以及node-sass依賴環(huán)境的方法

    Node-sass是一個庫,它將Node.js綁定到LibSass,下面這篇文章主要給大家介紹了關于npm一鍵安裝Python以及node-sass依賴環(huán)境的相關資料,文中還介紹了安裝node-sass報錯Python環(huán)境問題避坑指南,需要的朋友可以參考下
    2022-09-09
  • Node.js本地文件操作之文件拷貝與目錄遍歷的方法

    Node.js本地文件操作之文件拷貝與目錄遍歷的方法

    這篇文章主要介紹了Node.js本地文件操作之文件拷貝與目錄遍歷的方法,拷貝用到了Node的文件API,遍歷則舉了一個異步API實現(xiàn)的形式(Node的一大特點),需要的朋友可以參考下
    2016-02-02
  • 從零開始學習Node.js系列教程四:多頁面實現(xiàn)數(shù)學運算的client端和server端示例

    從零開始學習Node.js系列教程四:多頁面實現(xiàn)數(shù)學運算的client端和server端示例

    這篇文章主要介紹了Node.js多頁面實現(xiàn)數(shù)學運算的client端和server端,結(jié)合具體實例形式分析了nodejs客戶端提交與服務端處理實現(xiàn)數(shù)學運算的相關操作技巧,需要的朋友可以參考下
    2017-04-04
  • nodeJS(express4.x)+vue(vue-cli)構建前后端分離實例(帶跨域)

    nodeJS(express4.x)+vue(vue-cli)構建前后端分離實例(帶跨域)

    這篇文章主要介紹了nodeJS(express4.x)+vue(vue-cli)構建前后端分離實例(帶跨域) ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 解決node-sass偶爾安裝失敗的方法小結(jié)

    解決node-sass偶爾安裝失敗的方法小結(jié)

    這篇文章主要介紹了解決node-sass偶爾安裝失敗的方法小結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Node.js中path模塊操作路徑的基本使用

    Node.js中path模塊操作路徑的基本使用

    這篇文章主要介紹了Node.js中path模塊操作路徑的基本使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Node.js?Webpack常見的模式詳解

    Node.js?Webpack常見的模式詳解

    這篇文章主要介紹了Node.js?Webpack常見的模式,Webpack的另一個核心是Plugin?,Plugin是可以用于執(zhí)行更加廣泛的任務如打包優(yōu)化資源管理?環(huán)境變量注入等,需要的朋友可以參考下
    2022-10-10

最新評論

西城区| 营山县| 龙山县| 临安市| 崇礼县| 蓝田县| 徐州市| 耒阳市| 平山县| 开化县| 鄄城县| 林州市| 财经| 宜兴市| 邛崃市| 石河子市| 桂平市| 高邑县| 台北市| 盘山县| 东港市| 辉南县| 洛宁县| 睢宁县| 建昌县| 玉环县| 南平市| 深圳市| 广昌县| 九江县| 龙井市| 滦平县| 合作市| 渭南市| 深圳市| 土默特右旗| 西乡县| 喀什市| 景谷| 兴仁县| 邻水|