Express知识点梳理

123 阅读2分钟

介绍

express是一个基于Node.js平台的极简、灵活的web应用开发框架,简单来说,express是一个封装好的工具把皮,封装了很多功能,便于我们开发web应用(http服务)。 Express官网:expressjs.com/

使用express

npm install express

image.png

express 路由

路由确定了应用程序如何响应客户端对特定端点的请求,一个路由的组成有请求方法路径回调函数app.<method>(path,callback)

image.png

获取请求报文参数

express框架封装了一些API来方便获取请求报文中的数据,并且兼容原生HTTP模块的获取方式

image.png

获取路由参数

req.params.id

image.png

响应设置

res.status(500)
res.set('','') set header
res.send()
//跳转响应
res.redirect('url')
//下载响应
res.download(__dirname,'package.json')
//json响应
res.json({
  name:'test'})
//文件响应
res.sendFile(__dirname,'file.html')

express中间件

中间件(Middleware)本质是一个回调函数,可以像路由回调一样访问请求对象(request),和相应对象(response),种简洁的作用就是使用函数封装公共操作,简化代码,

  • 全局中间件-比如记录服务器的访问日志 中间件会接收三个参数,(req,res,next),next一定要执行,不然就不会调用后续路由自己的中间件函数了。 image.png

  • 路由中间件-把中间件放在受约束的路由中间,然后next继续执行后续的操作。 image.png

  • 静态资源中间件,将当前文件夹下面的public目录作为网站的根目录,这个目录中都是静态资源 image.png

    注意事项: 1. index.html文件为默认打开的资源。 2. 如果静态资源与路由规则同时匹配,那么谁线匹配就响应谁。 3. 一般情况下路由响应动态资源(比如搜索的结果,排行榜啊,经常变化的),静态资源中间件响应静态资源(css,图片啊)

获取请求体数据

express可以使用body-parser包来处理请求体,当中间件函数执行完毕后,会往请求体中加一个body的属性,获取到请求的数据,可以是json格式请求的,也可以是querystring格式请求的

image.png

防盗链

防盗链就是防止其他网站引用我们服务上的资源(图片等),使用referer请求头, image.png

路由模块化

router就是一个app对象

image.png

模版引擎

什么是模板引擎

是分离用户界面和业务数据的一种技术,可以简单理解为分离HTML和JS的,这里的JS指的是服务器端的js

ejs

ejs是一个高效的javascript的模板引擎,可以在html中写ejs语法 ejs.bootcss.com/

image.png

处理文件上传的请求

使用 formidable 包,npm i formidable www.npmjs.com/package/for…

Express应用程序生成器

expressjs.com/en/starter/… 使用express-generator可以自动生成express的代码框架,然后再少量修改就可以了。