目录
Express
1. Express
2. Express的使用
3. 监听GET、POST请求
4. 获取URL中携带的参数
5. 获取URL中的动态参数
托管静态资源
1. express.static()
2. 托管多个静态资源目录
3. 挂载路径前缀
Express路由
1.Express中的 路由
2. 路由的匹配过程
3. 模块化路由
3. 为路由模块添加前缀
Express1. Express
express:npm上的一个第三方包,提供了快速创建web服务器的便捷方法。
前端开发当中最常见的两种服务器:
Web网站服务器:专门对外提供Web网页资源的服务器API接口服务器:专门对外提供API接口的服务器使用Express,可以方便、快捷的创建Web网站的服务器或API接口的服务器。
2. Express的使用1)安装:在项目所处的目录中,运行终端命令
npm install express @4.17.1
2)创建基本的Web服务器
// 1.导入express
const express = require('express')
// 2.创建web服务器
const app = express()
// 3.启动web服务器
app.listen(80, () => {
console.log('server run at http://127.0.0.1');
})
3. 监听GET、POST请求
// 1.导入express
const express = require('express')
// 2.创建web服务器
const app = express()
// 4.监听客户端的GET和POST请求,并向客户端响应具体的内容
app.get('/user', (req, res) => {
// 调用express提供的res.send()方法,向客户端响应一个JSON对象
res.send({name: 'zs', age: 18, gender: '男'})
})
app.post('/user', (req, res) => {
res.send('请求成功')
})
// 3.启动web服务器
app.listen(80, () => {
console.log('server run at http://127.0.0.1');
})
结果:
4. 获取URL中携带的参数
通过req.query对象,可以访问到客户端通过查询字符串的形式,发送的服务端的参数。
// 1.导入express
const express = require('express')
// 2.创建web服务器
const app = express()
app.get('/', (req, res) => {
// req.query:默认是一个空的对象,获取客户端发送过来的查询参数
// 客户端使用 ?name=zs&age=20 这种查询字符串的形式,是发送到服务器的参数 =>通过 req.query对象可以访问
// req.query.name req.query.age
console.log(req.query);
})
// 3.启动web服务器
app.listen(80, () => {
console.log('server run at http://127.0.0.1');
})
结果:
5. 获取URL中的动态参数通过req.params对象可以访问到URL中通过 : 匹配的动态参数。
// 1.导入express
const express = require('express')
// 2.创建web服务器
const app = express()
// URL地址值,可以通过 :参数名 的形式,匹配动态参数值
app.get('/user/:id', (req, res) => {
// req.params:默认是一个空对象,里面存放着通过 : 匹配的动态参数值
console.log(req.params);
res.send(req.params)
})
// 3.启动web服务器
app.listen(80, () => {
console.log('server run at http://127.0.0.1');
})
托管静态资源1. express.static()
express提供了一个函数express.static(),通过这个函数可以非常方便的创建一个静态资源服务器。例如,通过以下代码就可以将public目录下的图片、CSS文件、JavaScript文件对外开放访问了。
app.use(express.static('public'))
2. 托管多个静态资源目录
如果想要托管多个静态资源目录,可以多次调用express.static()函数:
访问静态资源文件时,express.static()函数会根据目录的添加顺序查找所需的文件。
app.use(express.static('public'))
app.use(express.static('files'))
3. 挂载路径前缀
如果希望在托管的静态资源访问路径之前,挂载路径前缀,则可以使用如下的方式:
app.use('/public', express.static('public'))
Express路由1.Express中的 路由
在Express中,路由指的是客户端的请求与服务器处理函数之间的映射关系。
Express中的路由分3部分组成,分别是请求的类型、请求的URL地址、处理函数。
2. 路由的匹配过程每当一个请求到达服务器之后,需要先经过路由的匹配,只有匹配成功之后,才会调用相应的处理函数。
在匹配时,会按照路由的顺序进行匹配,如果请求类型和请求的URL同时匹配成功,则Express会将这次请求,转交给对应的function函数进行处理。
3. 模块化路由为了方便对路由进行模块化的管理,Express不建议将路由直接挂载到app上,而是推荐将路由抽离为单独的模块。将路由抽离为单独模块的步骤如下:
创建路由模块对应的.js文件调用express.Router()函数创建路由对象向路由对象上挂载具体的路由使用module.exports向外共享路由对象使用app.use()函数注册路由模块创建路与模块:
// 路由模块
// 1.导入express
const express = require('express');
const res = require('express/lib/response');
// 2.创建路由模块
const router = express.Router()
// 3.挂载具体的路由
router.get('/user/list', (req, res) => {
res.send('Get user list')
})
router.post('/user', (req, res) => {
res.send('Add new user')
})
// 4.向外导出路由
module.exports = router
注册路由模块:
const express = require('express')
const app = express()
// 1.导入模块化路由
const router = require('./07-router.js')
// 2.注册模块化路由
app.use(router)
app.listen(80, () => {
console.log('server run at http://127.0.0.1');
})
结果:
3. 为路由模块添加前缀
类似于托管静态资源时,为静态资源统一挂载访问前缀一样,路由模块添加前缀的方式为:
// 1.导入模块化路由
const router = require('./07-router.js')
// 2.注册模块化路由,并添加统一的访问前缀 /api
app.use('/api', router)
结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)