准备开始
express 简介绍
express 是自定义对象,使用原生nodejs 写的框架
启程helloworld
- 初始化npm init -y
- 安装
npm i express -S
- 1:引入express第三方对象1/。
- 2:构建一个服务器对象
- 3:开启服务器监听端口
- 4:处理响应
- 在express中,保留了原生http的相关属性和函数
app.use(虚拟目录,fn)
-
小练习
- 选择性荤菜素菜
-
中间件:在请求之后响应之前处理的文件。use触发事件:请求与响应之间。use() 意思:使用这个中间件
-
用户/abc/def的请求
- 选择性调用app.use(’/abc’,fn)的中间件
- 但是内部req.url则去除了/abc这个暗号
-
app.use(fn)是任何请求都会触发执行的
中间件
宏观:在连个应用程序(天猫中间件)中间或者两个系统中间处理的软件
微观:在请求与响应之间执行;处理文件
中间件类别(了解)
- 应用级中间件
app.use(事fn)
- 路由级中间件
- 1:获取路径级中间件
- 2:配置路由
- 3:加入到应用程序控制中
app.use(router);
- 内置中间件
- 处理一些静态资源文件的返回(设置将某个目录下的资源文件向外暴露)
- 当url匹配上我设置的目录下的子文件后,自动返回该文件
- 加入到应用程序控制中
app.use(内置中间件);
- 处理一些静态资源文件的返回(设置将某个目录下的资源文件向外暴露)
- 第三方中间件(作用:处理post请求传来的数据)
- 更方便的处理cookie/session,简易的解析post请求体数据
- 在npm上下载并使用
- 加入到应用程序控制中
app.use(第三方中间件);
- 错误处理中间件
- 在express中统一处理错误
next(err)
- 在express中统一处理错误
流 stream
流:当一个代码片段执行完毕后;会执行下一个代码片段从而形成了一个流 在express中 next()方法作用:告诉外界:当前代码执行完毕;可以执行下一个了.
路由中间件
-
一个请求进来(总网线),分发到各自不同的处理(分多根网线给其他人)
- 分流
-
后端路由
- (请求方式 + URL = 判断依据)(分流的判断依据) -> 做不同的处理(分流后的行为)
-
路由中间的使用步骤
-
在有服务的前提下搭建理由中间件的步骤如下
-
1:获取路由中间件对象
let router = express.Router();
-
2:配置路由规则
router.请求方式(URL,fn事)
- fn中参数有req,res,next
-
3:将router加入到应用
app.use(router)
-
路由
res扩展函数
res.download('./xxx.txt') // 下载文件
res.json({}) // 响应json对象
res.jsonp(数据) // 配合jsonp 要求客户端请求的时候也是jsonp的方式, 并且callback=xxx
res.redirect() // 重定向 301是永久重定向, 302临时重定向
res.send() // 发送字符串数据自动加content-type
res.sendFile() // 显示一个文件
res.sendStatus() // 响应状态码
- 总结
- res.json() 响应数据,最常用 , 返回ajax数据
- redirect() 重定向
- download(文件的路径) 下载 客户端访问这个路由是;就下载文件
- 以下为响应头写法
- jsonp() 跨域处理
上传
- 使用步骤
- 1:安装第三方中间件 formidable 作用上传和编码图像和视频的服务 multer 上传文件包
- 2: 导入模块 require(“formidable”)