node.js的登陸註冊界面以及cookie

/*
頭像上傳項目
node.js版本   v6.9.1
express版本   v4.14.0  
path版本      v0.12.7
formidable版本 v1.0.17
cookie:版本v1.4.3


*/
// 第一步  引入相應接口  建立app對象  監聽端口
var express=require("express");
var path=require("path");
var app=express();
var bp=require("body-parser")//引入body-parser
var fs=require("fs");
var cookie=require("cookie-parser")

// 第二步  設置靜態路徑   建立public文件夾  在其中建立image,js,css文件夾
app.use(express.static(path.join(__dirname,'public')))
app.use(bp.urlencoded({extended:false}))
app.use(cookie())
// 第三步接收請求   首頁請求
app.get('/',function(req,res){
	res.sendFile(path.join(__dirname,'main.html'))//第四步:在項目目錄下建立main.html
})
// 第五步  接收login請求  發送登陸頁面
app.get('/login',function(req,res){

	// 編寫登陸界面發送給瀏覽器
	res.sendFile(path.join(__dirname,'login.html'))
})
// 第六步  接收register請求  發送註冊頁面
app.get('/register',function(req,res){
	// 編寫註冊頁面發送給瀏覽器
	res.sendFile(path.join(__dirname,'register.html'))
})
// 第七步 接收註冊頁面發生的請求
app.post('/register',function(req,res){
	// 解析註冊界面過來的表單  就是解析body   就要安裝body-parser
	// 把post過來的數據存到數據庫中  這裏的數據庫就拿一個文件database來代替
	// 把用戶信息變成一個字符串存放到database
	var info=req.body.user+req.body.pwd1+req.body.mobile+req.body.email
     fs.appendFile('./database',info,function(err){
     	if(err){
     		  console.log(err.message)
     	}
     	res.send("<a href='/' style='text-decoration: none;'>註冊成功</a>")
    })
 
})
// 第八步 接收登陸界面發送的信息
app.post('/login',function(req,res){
		// 第九步  在登陸界面添加cookie
	// 9.1第一次登陸  尚未設置cookie  故請求頭中不會有cookie值  

	if(!req.cookies.user){

		// 9.4若是要有cookie  讀取cookie的值
		var cookieUser=req.cookies.user
		var cookiePwd=req.cookies.pwd
		// 9.5仍是要判斷cookie中的值與註冊信息是否匹配
		res.cookie('user',req.body.user)
		res.cookie('pwd',res.body.pwd)//注:cookie須要單獨設置
		fs.readFile('./database','utf-8',function(err,data){
					var reg1=cookieUser
					var reg2=cookiePwd
					var arr1=data.match(reg1)//若是有 返回數組  沒有就是null
					var arr2=data.match(reg2)
					console.log(arr2)

					    if(arr1 && arr2){
							res.send("成功")
						}else{
							res.send("失敗")
						}
					
					})

	}else{

		res.cookie('user',req.body.user)
		res.cookie('pwd',res.body.pwd)//注:cookie須要單獨設置
		fs.readFile('./database','utf-8',function(err,data){
	// 8.3使用match與文件中的數據匹配
		var reg1=req.body.user
		var reg2=req.body.pwd
		var arr1=data.match(reg1)//若是有 返回數組  沒有就是null
		var arr2=data.match(reg2)
		console.log(arr2)

		    if(arr1 && arr2){
				res.send("成功")
			}else{
				res.send("失敗")
			}
		
		})

	}

})
app.listen(3001)
相關文章
相關標籤/搜索