第三方中间件
let express = require("express");
let app = express();
let ejs = require('ejs');
let bodyParser = require('body-parser'); //第三方中间件
app.use(bodyParser.urlencoded({ extended: false })); // application/x-www-form-urlencoded
app.use(bodyParser.json()); //application/json
let cookieParser = require('cookie-parser');
app.use(cookieParser('abcdef')); //如果cookie 要加密 这里 设置加密的字符
使用内置中间件 static 设置静态资源文件托管
例如设置 static 文件为静态资源目录
app.use(express.static('static')); //设置static文件为静态资源目录
设置静态资源文件的虚拟目录
静态路径是/public/1.jpg 去static 文件 找静态文件
app.use('/public', express.static('static'));
设置模板引擎
固定写法 设置ejs模板引擎
app.set('view engine', 'ejs');
放置ejs模板的文件叫views文件
可以修改默认文件名称
__dirname
指当前项目的根目录
app.set('views', __dirname + '/view');
-
第三方中间件 安装使用
-
body-parser第三方中间件的使用
-
表单提交 post 方式获取值的中间件
1.安装 cnpm install --save-dev body-parser
2.引入中间件
3.设置解析格式
4.直接在post请求里面直接使用 req.body 获取的数据是json格式 -
第三方中间件 cookie-parser 使用
1.安装 cnpm install --save-dev cookie-parser
2.引入 + 关联
3.直接使用
app.get('/', (req, res) => {
//渲染首页 不用写路径
//检测是否记住了 有缓存
let userid = null;
let userpwd = null;
let rember = null;
//下面这个是不设置签名读取的方法
// if (req.cookies['USER_KEY']) {
// let user = JSON.parse(req.cookies['USER_KEY']);
// userid = user.userid;
// userpwd = user.userpwd;
// rember = user.rember;
// }
//cookie设置签名 读取方式
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
});
});
下面是 body-parser 中间件的获取值 req.body
app.post('/dologin', (req, res) => {
console.log(req.body); //[Object: null prototype] { userid: 'admin', userpwd: '12345' }
//如果在前端 选择 记住我 就写入缓存
if (req.body.rember) {
console.log(1);
//写入缓存
res.cookie('USER_KEY', JSON.stringify(req.body), {
maxAge: 60 * 10 * 10 * 10, //6秒
path: '/', //path 指当前cookie在哪个路径下有效 默认是 /
//domain:'www.maodou.com',//设置域名
signed: true //设置cookie 签名的 加密的
});
}
res.send('登录成功');
});
let session = require('express-session');
信任session缓存
app.set('trust proxy', 1);
- 关联到express框架 配置options
app.use(session({
secret: "keyboard cat", //设置签名的
resave: false, // 不强制保存session
saveUninitialized: true, //强制存储为初始化的session
cookie: {
secure: true //这个是安全性考虑的 这个设置为true 就得写信任服务端代码
//这是属性设置为true https 安全性协议可以设置值 如果是http 就要写信任代理
}
}));
使用内置中间件 static 设置静态资源文件托管
例如设置 static 文件为静态资源目录
app.use(express.static('static'));
//设置static文件为静态资源目录
设置静态资源文件的虚拟目录
静态路径是/public/1.jpg 去static
文件 找静态文件
app.use('/public', express.static('static'));
设置模板引擎
固定写法 设置ejs模板引擎
app.set('view engine', 'ejs');
放置ejs模板的文件叫views文件
可以修改默认文件名称
__dirname
指当前项目的根目录
app.set('views', __dirname + '/view');
第三方中间件 安装使用
body-parser
第三方中间件的使用
表单提交 post 方式获取值的中间件
1.安装 cnpm install --save-dev body-parser
2.引入中间件
3.设置解析格式
4.直接在post请求里面直接使用 req.body
获取的数据是json
格式
第三方中间件 cookie-parser
使用
1.安装 cnpm install --save-dev cookie-parser
2.引入 +
关联
3.直接使用
第三方中间件 express-session
1.安装 cnpm install --save-dev express-session
2.引入
app.get('/', (req, res) => {
//渲染首页 不用写路径
//检测是否记住了 有缓存
let userid = null;
let userpwd = null;
let rember = null;
//下面这个是不设置签名读取的方法
// if (req.cookies['USER_KEY']) {
// let user = JSON.parse(req.cookies['USER_KEY']);
// userid = user.userid;
// userpwd = user.userpwd;
// rember = user.rember;
// }
//cookie设置签名 读取方式
if (req.signedCookies['USER_KEY']) {
let user = JSON.parse(req.signedCookies['USER_KEY']);
userid = user.userid;
userpwd = user.userpwd;
rember = user.rember;
}
console.log(req.session.user);
res.render('index', {
userid: userid,
userpwd: userpwd,
rember: rember
});
});
// 下面是 body-parser 中间件的获取值 req.body
app.post('/dologin', (req, res) => {
//console.log(req.body);//[Object: null prototype] { userid: 'admin', userpwd: '12345' }
//如果在前端 选择 记住我 就写入缓存
if (req.body.rember) {
//写入缓存
res.cookie('USER_KEY', JSON.stringify(req.body), {
maxAge: 60 * 10 * 10 * 10, //6秒
path: '/', //path 指当前cookie在哪个路径下有效 默认是 /
//domain:'www.maodou.com',//设置域名
signed: true //设置cookie 签名的 加密的
});
//写入session
req.session.user = JSON.stringify(req.body);
}
res.send('登录成功');
});