什么是express
express 基于node平台 开发的一个极其轻量的框架 帮助你快速开发web以及移动端应用
express不对node.js本身的特性进行二次抽象 而是在基本功能上进行扩充
express完全是由路由和中间件构成的框架
从本质上来说一个express应用就是为了调用各种中间件
Express 框架核心特性:
-
可以设置中间件来响应 HTTP 请求。
-
定义了路由表用于执行不同的 HTTP 请求动作。
-
可以通过向模板传递参数来动态渲染 HTML 页面
那么什么又是中间件呢
中间件(函数)
中间件(middleware) 是一个函数 --他可以访问request对象,响应对象(res) 以及处于请求--响应流程中的中间件,一般被命名为 next 的变量。
中间件的功能:
-
可以执行任何代码(函数可以执行任何代码)
-
可以修改请求和响应对象
-
可以结束请求-响应循环
-
可以调用堆栈中的下一个中间件
如果中间件没有执行结束请求-响应流程
他需要通过next() 将控制权传递给下一个中间件函数
Tips:我们把结束请求-响应流程的方法 称为是句柄函数
怎么使用Express呢
Express安装
1/全局安装环境 npm install express –g
2/测试安装成功与否 express –h(省略)
3/安装npm install express-generator –g
Express路由
应用级别的路由
app.get 路径挂载
send 是express提供的中间件函数 把图标过滤掉了 不是node 的
//通过服务对象app 来进行路由对象的挂载//get post put all好多//当用户以get形式向服务器发送请求的时候 // '/'路径 localhost:3000/ 用户以get向这个路径发出请求的时候可以拿到的数据
var express=require('express');
//应用级别路由
var app=express() //服务对象 app相当于服务对象
//http.createServer()//返回一个服务对象
app.get('/',(req,res)=>{
res.send('hello')
})
app.get('/index',(req,res)=>{
res.send('hi')
})
app.listen(3000)
路由级别路由
use 把路由对象挂载到服务对象
var express=require('express');
var app=express()
//路由级别路由
//var router =new express.Router()创建路由对象 new 可以不要
//需要把路由对象发到服务对象上 访问的是服务对象
var router=express.Router()
router.get('/',(req,res)=>{
res.send('hello router')
})
router.get('/index',(req,res)=>{
res.send('hello index')
})
app.use('/home',router)
app.listen(3000)
//locahost:3000/home/index
//locahost:3000/home --
路由级别路由比较方便
在 Express 中可以直接 req.query 来获取查询字符串参数