介绍
express是一个基于Node.js平台的极简、灵活的web应用开发框架,简单来说,express是一个封装好的工具把皮,封装了很多功能,便于我们开发web应用(http服务)。 Express官网:expressjs.com/
使用express
npm install express
express 路由
路由确定了应用程序如何响应客户端对特定端点的请求,一个路由的组成有请求方法,路径,回调函数。
app.<method>(path,callback)
获取请求报文参数
express框架封装了一些API来方便获取请求报文中的数据,并且兼容原生HTTP模块的获取方式
获取路由参数
req.params.id
响应设置
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一定要执行,不然就不会调用后续路由自己的中间件函数了。
-
路由中间件-把中间件放在受约束的路由中间,然后next继续执行后续的操作。
-
静态资源中间件,将当前文件夹下面的public目录作为网站的根目录,这个目录中都是静态资源
注意事项: 1. index.html文件为默认打开的资源。 2. 如果静态资源与路由规则同时匹配,那么谁线匹配就响应谁。 3. 一般情况下路由响应动态资源(比如搜索的结果,排行榜啊,经常变化的),静态资源中间件响应静态资源(css,图片啊)
获取请求体数据
express可以使用body-parser包来处理请求体,当中间件函数执行完毕后,会往请求体中加一个body的属性,获取到请求的数据,可以是json格式请求的,也可以是querystring格式请求的
防盗链
防盗链就是防止其他网站引用我们服务上的资源(图片等),使用referer请求头,
路由模块化
router就是一个app对象
模版引擎
什么是模板引擎
是分离用户界面和业务数据的一种技术,可以简单理解为分离HTML和JS的,这里的JS指的是服务器端的js
ejs
ejs是一个高效的javascript的模板引擎,可以在html中写ejs语法 ejs.bootcss.com/
处理文件上传的请求
使用 formidable 包,npm i formidable
www.npmjs.com/package/for…
Express应用程序生成器
expressjs.com/en/starter/… 使用express-generator可以自动生成express的代码框架,然后再少量修改就可以了。