let express = require('express');
let app = express();
let app = new express();
应用层中间件先执行 ,app.use()
放到路由之前
app.use((req, res, next) => {
console.log("应用层中间件");
next();
});
app.use('/login', (req, res, next) => {
console.log(1);
next();
}, (req, res, next) => {
console.log(2);
next();
});
app.use('/login',(req,res,next)=>{
console.log("进入login路由之前的操作");
next();
});
let router = express.Router();
跳转下一个路由使用 next('route');
router.all('*', (req, res, next) => {
console.log("路由的all方法");
next();
});
放在当前路由之前
router.use("/login", (req, res, next) => {
console.log("马上进入login路由");
//出错
let err=new Error("路由里面出错了");
next(err); //这样可以出发错误中间件的执行
});
route.get("/login", (req, res, next) => {});
app.use('/',route);
多了一个参数error
app.use((error,req,res,next)=>{
console.log("错误中间件");
//res.redirect('/');
console.log(error.stack); //输出错误信息
res.status(500).send("出错了");
});
表单提交 post 方式获取值的中间件
安装 cnpm install --save-dev body-parser
引入 let bodyParser = require('body-parser')
设置解析格式
app.use(bodyParser.urlencoded({ extended: false }));// application/x-www-form-urlencoded
app.use(bodyParser.json());//application/json
post请求内使用json格式数据 req.body
console.log(req.body);
//[Object: null prototype] { userid: 'admin', userpwd: '12345' }
安装 cnpm install --save-dev cookie-parser
引入 let cookieParser = require('cookie-parser');
写入缓存 res.cookie('NAME',JSON.stringify(req.body){}
res.cookie('USER_KEY', JSON.stringify(req.body), {
maxAge: 60 * 10 * 10 * 10, //6秒
path:'/',//path 指当前cookie在哪个路径下有效 默认是 /
domain:'www.maodou.com',//设置域名内访问
signed:true //设置cookie 签名的 加密的
});
读取缓存
JSON.parse(req.cookies['NAME']);
不签名
JSON.parse(req.signedCookies['NAME]);
签名
if (req.signedCookies['USER_KEY']) {
let user = JSON.parse(req.signedCookies['USER_KEY']);
userid = user.userid;
userpwd = user.userpwd;
rember = user.rember;
}
res.render('index', { //渲染数据
userid: userid,
userpwd: userpwd,
rember: rember
});
签名加密
如果cookie 要加密,设置加密的字符
app.use(cookieParser('abcdef'));
安装 cnpm install --save-dev express-session
引入 let session = require('express-session')
写入session req.session.user = JSON.stringify(req.body);
读取session req.session.user