一个请求必需要给一个响应。
有很多响应方法
res.render 渲染 view + data = html
res.json 返回json格式的数据 前后端数据交换时 尽量用json。json对象有属性没方法。
res.end() 表示请求结束。
express 三大利器 路由 中间件 视图引擎
- 使用app.use挂载中间件
- route 路由处理 Router是express内置的一个中间件
- 视图引擎 不是必须的,也是自己去渲染视图。
http方法有很多 比如 get post path put delete patch
使用路由时,相同的路径,可以使用不同的http方法来做不同的功能,以精简路由。
比如:
GET /posts 获取文章
POST /posts 创建文章
DELETE /posts 删除文章
PUT /posts 修改文章
PATCH /posts 修改文章
中间件的截流
一定是有目的的。
比如 服务升级时 截流 后面的中间件就相当于废代码 慢慢升级就好了
router.get('/',function(req,res,next){
res.send('网站正在升级,coming soon');
});
视图引擎,是对ejs的一个封装,这个不是必须的,我们自己也可以去渲染
但是比较麻烦。比如:使用ejs读取文件内容并使用数据渲染
res.locals
ejs不仅可以访问到渲染过去的数据,还可以获取res.locals对象里的数据。
res.locals很重要的,所有页面共同的信息可以放进来。
比如res.locals.marked = markdown ejs就可以访问这个变量,给页面提供了渲染md的能力。
但这不是个好例子 md一般在服务端渲染后直接传给前端页面,这里是为了说明,是把东西放入locals中,会解决很多问题。