node.js實(shí)現(xiàn)登錄注冊頁面
本文實(shí)例為大家分享了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">密 碼</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)文章
NodeJs環(huán)境安裝與配置的實(shí)現(xiàn)步驟
本文主要介紹了NodeJs環(huán)境安裝與配置,包括配置環(huán)境和配置國內(nèi)鏡像,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01
windows使用nvm對node進(jìn)行版本管理切換的完整步驟
這篇文章主要介紹了windows使用nvm對node進(jìn)行版本管理切換的完整步驟,在使用之前各位務(wù)必卸載掉自己安裝過的nvm或者node版本包括環(huán)境變量之類的,要保證自己的電腦完全沒有node環(huán)境,需要的朋友可以參考下2024-03-03
node.js利用socket.io實(shí)現(xiàn)多人在線匹配聯(lián)機(jī)五子棋
這篇文章主要介紹了node.js利用socket.io實(shí)現(xiàn)多人在線匹配聯(lián)機(jī)五子棋的操作方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-05-05
Node.js API詳解之 querystring用法實(shí)例分析
這篇文章主要介紹了Node.js API詳解之 querystring用法,結(jié)合實(shí)例形式分析了Node.js API中querystring的基本功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
Nodejs實(shí)現(xiàn)多人同時在線移動鼠標(biāo)的小游戲分享
這篇文章主要介紹了Nodejs實(shí)現(xiàn)多人同時在線移動鼠標(biāo)的小游戲分享,本文給出了服務(wù)器端和客戶端代碼以及運(yùn)行方法,需要的朋友可以參考下2014-12-12
nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法示例
這篇文章主要介紹了nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法,通過兩個具體案例形式分析了node.js同步刪除文件/文件夾,以及異步刪除文件/文件夾的相關(guān)實(shí)現(xiàn)技巧,涉及遞歸遍歷與文件判斷、回調(diào)等相關(guān)操作,需要的朋友可以參考下2023-04-04

