express
- express是啥
 是个nodejs库,基于npm上中间件。类似koa
- 特点
 二次封装,非侵入式,增强型
- 安装- npm init -y
- npm install express -D
- 安装中间件
 npm i body-parser -D
 
- API- 引入模块
 let express = require(‘express’);
 let bodyParser = require(‘body-parser’);
- 搭建服务器
 let server = express();
- 监听
 server.listen(端口号)
- 静态页面托管
 server.use(express.static(‘静态页面文件地址’));
- 响应请求
 server.get/post/use(地址,(req,res)=>{res.send(string|buffer)});注:res.send(字符串/buffer)相当于res.write(string|buffer);res.end();若地址为/,则地址可省略- req.query获取get请求
 获取到的是object
- 使用中间件获取post请求
 let bodyParser = require(‘body-parser’);//引入中间件(中间件是个函数)
 server.use(bodyParser()); //使用body-parser中间件
- req.method
 判断是GET请求还是POST请求
- next是个函数,调用下一个相同地址的响应,除了/(如图 3-1) 
 
- req.query获取get请求
 
- 引入模块
中间件
body-parser
- body-parser API- 搭建服务器
 let bodyParser = require(‘body-parser’); //引入body-parser中间件
- 获取post数据,限定大小,约定返回数据类xx.urlencoded({limit:xx}) //xx单位为kbserver.use(bodyParser.urlencoded({limit:5*1024}));//使用body-parser组件将表单限制大小为5M
- 获取post数据req.body
 
- 搭建服务器
multer
- node.js原生文件操作方法 - 文件重命名
 fs.rename('当前文件','改后的文件名',(err)=>{});
- 引入path模块(处理文件与目录的路径) - path.parse('c:\\wamp\\xx.png');磁盘路径(str -> obj)12345678//path.parse之后得到的对象格式{root: 'c:\\', 盘符dir: 'c:\\wamp', 目录base: 'xx.png', 文件名ext: '.png', 扩展名name: 'xx' 文件,不含扩展名}
- path.join(‘磁盘路径1’,’磁盘路径2’) 
 参数1:- __dirname魔术变量 返回当前文件所在的磁盘路径
 
 
- 文件重命名
- 文件上传- 前端file enctype="multipart/form-data"
- 后端- 使用body-parser中间件(不适合)
 body-parser 接受 urlencode编码数据 ,数据回来的是字符,所以body-parse不适合文件上传,采用multer
- 使用multer中间件- let multer = require(‘multer’); 引入
- let objMulter = multer({ dest: './upload' });实例化 返回 multer对象(将文件保存到服务器下的upload文件夹中)
 dest: 指定 保存位置(存到服务器)
- app.use(objMulter.any());any 允许上传任何文件
- req.files获取到上传的文件数组(如图 2-1)- fieldname: 表单name名
- originalname: 上传的文件名
- encoding: 编码方式
- mimetype: 文件类型
- buffer: 文件本身
- size:尺寸
- destination: 保存路径
- filename: 保存后的文件名 不含后缀
- path:    保存磁盘路径+保存后的文件名 不含后缀 
 
 
 
- 使用
 
- 前端
cookie-parser cookie-session
- 如何识别同一个人访问了服务器(用户唯一性判断)
 http协议,http无状态- 原理:通过给客户端浏览器保存一些信息(服务器给浏览器写cookie)
- 需要中间件cookie-parser cookie-session
- 流程
 浏览器->服务器->给浏览器种cookie(服务器保留一份seesionID)->下次浏览器(带着cookie)->服务器(利用seesionID和cookie对比)->返回内容
- cookie-paser
 let cookieParser = require(‘cookie-parser’);
 server.use(cookieParser());- res.cookie(key,value,{配置}) 给浏览器种cookie
- req.cookie.key 返回cookie(服务器读cookie)
- res.clearCookie(key) 服务器给浏览器删cookie
 
- cookie-session
 let cookieSession = require(‘cookie-session);
 server.use(cookieSession({
 name:’key’,
 keys:[‘aa’,’bb’], //用来加密,为了安全,必须存在
 maxAge:1000*5 //过期时间}
 ));- 服务器写session
 req.session.key = value;
- 服务器读session
 req.session.key
- 服务器删session
 req.session.key = undefined;
 
- 服务器写session
 
