express学习
1. 了解Express
Express是基于Node.js平台,快速、开放、极简的Web开发框架。
通俗理解:Express的作用和Node.js内置的http模块类似,是专门用于创建web服务器的。
本质上就是一个npm的第三方包,提供了快速创建Web服务器的便捷方法。
express是基于http内置模块进一步封装出来的,使用Express可以方便快速的创建Web网站服务器或API接口服务器。
Express的中文官网:http://www.expressjs.com.cn/.
2. Express使用
2.1 安装
输入命令:
npm i express@4.17.1
2.2 创建一个基本的web服务器
//1.导入express
const express = require('express')
//2.创建web服务器
const app = express()
//3.启动web服务器
app.listen(80 , () => {
console.log('express server running')
})
2.3 监听GET请求
通过app.get()
方法监听get请求,语法:
app.get('请求url' , function(req,res){ })
2.4 监听POST请求
通过app.post()
方法监听get请求,语法:
app.post('请求url' , function(req,res){ })
2.5 把内容响应给客户端
通过res.send()
方法:
app.post('请求url' , function(req,res){
res.send('请求成功')
})
2.6 获取URL中携带的查询参数
通过req.query
对象,可以访问到客户端通过查询字符串的形式,发送到服务器的参数:
2.7 获取URL中的动态参数
通过req.params
对象,可以访问到URL中,通过:匹配到的动态参数:
3.托管静态资源
3.1 express.static()
3.2 托管多个静态资源目录
3.3 挂载路径前缀
4.nodemon
4.1 安装nodemon
在终端中运行命令:
npm install -g nodemon
4.2 使用nodemon
5. Express路由
在express中,路由指的是客户端的请求与服务器处理函数之间的映射关系。
Express中的路由分3部分组成,分别为请求的类型、请求的URL地址、处理函数,格式如下:
app.METHOD(PATH, HANDLER)
Express中的路由的例子
5.1 路由的匹配过程
5.2 路由的使用
5.2.1 最简单的方法
5.2.2 模块化路由
为方便对路由进行模块化管理,Express不建议将路由直接挂在到app中,推荐将路由抽离为单独的模块。
5.2.3 创建路由模块
创建路由模块 router.js
// 1.导入express
const express = require('express')
// 2.创建路由对象
const router = express.Router()
// 3.挂载具体路由
router.get('/user/list', (req,res) => {
res.send('get user list')
})
router.post('/user/add', (req,res) => {
res.send('add new user')
})
// 4.向外导出路由对象
module.exports = router
5.2.4 注册路由模块
index.js文件中
// 创建基本服务器
const express = require('express')
const app = express()
// 1. 导入路由模块
const router = require('./router')
// 2.注册路由模块
app.use(router)
app.listen(80 , () => {
console.log('http://127.0.0.1')
})
app.use()函数的作用就是用来注册全局中间件的
5.2.5 为路由模块添加前缀
在上面的代码中注册路由模块时添加前缀,如:
app.use(router) => app.use('/api' , router)
此时访问路由时前面需要添加’/api’前缀。