/* 頭像上傳項目 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)