0
点赞
收藏
分享

微信扫一扫

一文了解Express路由


1.什么是路由

在 ​​Express中文网​​ 中,其对路由的解释如下:

路由用于确定应用程序如何响应对特定端点的客户机请求,包含一个 URI(或路径)和一个特定的 HTTP 请求方法(GET、POST 等)。

每个路由可以具有一个或多个处理程序函数,这些函数在路由匹配时执行。

简单理解就是,路由是一种映射关系or对应关系。配置路由,就是设置应用端请求和服务器端响应之间的对应关系。

2.路由的基本结构

2.1基本格式

如下所示:

一文了解Express路由_前端

2.2具体例子


//1.导入express const express = require('express') //2.创建web服务器 const app = express() //3.启动web服务器 app.listen(80,()=>{ console.log('express server runnning at http://127.0.0.1:8080') }) //响应get请求 app.get('/', function (req, res) { res.send('Hello World!'); }); //响应post请求 app.post('/', function (req, res) { res.send('Got a POST request'); });


说明:

1.此处示例采取的是最简单的挂载到app上的路由,一般不推荐这样使用,一般推荐挂载到路由对象上(详见后面的模块化路由)

2.当有多个路由时,如下所示:

一文了解Express路由_javascript_02

此时应该按照路由定义的顺序逐一匹配客户端的请求,从而决定先分发谁(在处理静态资源时尤其注意!)

3.模块化路由

3.1何为模块化

首先你需要了解JS中 模块 的概念,这里引用廖雪峰老师的一段话说明:

为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Node环境中,一个.js文件就称之为一个模块(module)。

详细了解模块请见:​​模块 - 廖雪峰的官方网站​​

3.2为什么要采用模块化路由

答:

①将路由挂载到router路由对象上,可以减轻express对象负担;

②可以将对应于某些页面的请求放在一个路由中,让路由之间的层级关系更加清晰

3.3具体案例

文件结构:

一文了解Express路由_vue.js_03

其中router.js是我们定义的一个模块,其具体内容如下:


//1.导入express const express = require('express') //2.创建路由对象 const router = express.Router() //3.挂载具体的路由 router.get('/get',(req, res) => { console.log('get访问路由成功') res.send('欢迎使用get方式访问!尝试一下改动~') }) router.post('/post',(req, res) => { res.send('欢迎使用host方式访问!') }) //向外导出路由对象 module.exports = router


在 模块化路由.js 文件中,我们引入路由,内容如下:


//1.导入模块
const express = require('express')
//2.创建服务器
const app = express()
//3.导入路由模块
const router = require('./router')
//4.注册路由模块
app.use(router)
//启动服务器
app.listen(80,()=>{
console.log('server running at http://127.0.0.1:80')
})

举报

相关推荐

0 条评论