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

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

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

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

目錄結(jié)構(gòu)

注冊(cè)頁(yè)面:

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>用戶注冊(cè)</h1>
? ? ? ? <p>
? ? ? ? ? ? <label for="">用戶名:</label>
? ? ? ? ? ? <input type="text" id="username">
? ? ? ? </p>
? ? ? ? <p>
? ? ? ? ? ? <label for="">密&emsp;碼:</label>
? ? ? ? ? ? <input type="text" id="password">
? ? ? ? </p>
? ? ? ? <button>注冊(cè)</button>
? ? </div>
</body>
</html>
<script src="./node_modules/jquery/dist/jquery.js"></script>
<script>
?? ?//點(diǎn)擊注冊(cè)發(fā)送ajax請(qǐng)求
? ? $('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('未知錯(cuò)誤');
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? }?
? ? ? ? ? ? }
? ? ? ? })
? ? })
</script>

登錄頁(yè)面:

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>
?? ?//點(diǎn)擊登錄發(fā)送ajax請(qǐng)求
? ? $('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('密碼錯(cuò)誤');
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case '4':
? ? ? ? ? ? ? ? ? ? ? ? alert('未知錯(cuò)誤');
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? })
? ? })
</script>

app.js

const http = require("http");
const fs = require("fs");
const url = require("url");
const querystring = require("querystring");
const post = 3000;
//通過(guò)http模塊創(chuàng)建服務(wù)器,并監(jiān)聽(tīng)端口3000
const server = http.createServer();
server.on("request",(req,res)=>{
? ? const dataurl = url.parse(req.url);
? ? //靜態(tài)伺服
? ? //默認(rèn)進(jìn)入reg.html頁(yè)面?
? ? 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);

注冊(cè)接口:

/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');
? ? ? ? ? ? }
? ? ? ? }
? ? })
}

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

相關(guān)文章

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

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

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

    npm?install報(bào)錯(cuò)unable?to?resolve?dependency?tree的解決辦法

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

    Node.js+Express配置入門(mén)教程

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

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

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

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

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

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

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

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

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

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

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

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

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

    Node.js?Webpack常見(jiàn)的模式詳解

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

最新評(píng)論

建宁县| 新泰市| 南汇区| 郴州市| 白城市| 那曲县| 永和县| 尤溪县| 布尔津县| 眉山市| 建阳市| 莱西市| 岑巩县| 濉溪县| 教育| 沐川县| 凤阳县| 类乌齐县| 滦南县| 海晏县| 贞丰县| 高要市| 绥化市| 桐柏县| 永城市| 涞源县| 遵化市| 栾城县| 大埔区| 昭觉县| 沙田区| 丰县| 河曲县| 竹溪县| 阆中市| 广平县| 中山市| 葫芦岛市| 永和县| 宝应县| 图木舒克市|