/app.js
var http = require("http");
var express = require("express");
var cookieParser = require("cookie-parser");
var session = require("express-session");
var bodyParser = require("body-parser");
var fs = require("fs");
//得到app對象並啓動服務
var app = express();
htttp.createServer(app);
//設置服務器啓動的端口號
app.set(“port”,8080);
//指定視圖目錄
app.set("views","./public/views");
//緩存視圖
app.set(“view cache”,true);
//設置視圖引擎
app.set("view engine","ejs");
//指定靜態文件的目錄
app.use(express.static(__dirname+"/public"));
//post方式提交數據解析
app.use(bodyParser.ulencoded({extendend:true}))
//解析cookie
app.use(cookieParser());
//根據cookie獲取內存中的session
app.use(session({
secret:'my_login_demo',
cookie:{secure:false,maxAge:30*60*1000}
}))
//自定義中間件,用於判斷用戶是否登錄和能否登錄
app.use(function(req,res,next){
if(req.session.user){
next();
}else{
var name = req.body.name //獲取用戶名值noLogin
var pwd = req.body.password; //獲取密碼值
var noLogin = req.body.noLogin;//獲取是否選擇免登錄
var cookies = req.cookies;//獲取所有cookie
if((name === "xiaoming" && pwd==="1234") || (cookies.name ==="xiaoming" && pwd === "1234") ){
//當前客戶端免登錄
if(noLogin == 'on'){
res.cookid('name',name,{maxAge:2*7*24*60*60*1000})
res.cookie('pwd',pwd,{maxAge:2*7*24*60*60*1000})
}
req.session.user={name:name,pwd:pwd}
next();
}else{
res.set("content-type","text/html");
res.status(200).sendFile(__dirname+"/public/html/login.html")
}
}
})
app.get("/comment",function(req,res){
console.log("=====");
res.set("content-type","text/plain;charset=utf-8")
res.end("登錄成功");
})
app.listen(app.get(“port”),function(){
console.log("listen on "+app.get("port"))
})