/*
头像上传项目
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)