一文了解Express路由

1.什么是路由

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

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

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

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

2.路由的基本结构

2.1基本格式

如下所示:

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.当有多个路由时,如下所示:

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

3.模块化路由

3.1何为模块化

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

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

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

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

答:

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

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

3.3具体案例

文件结构:

其中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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值