开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第35天,点击查看活动详情
大家在学习Koa框架的时候都不可避免的会接触的路由这个东西,那对于我们初学者来说路由到底是什么呢?
今天我们来好好讲解一下什么是路由
首先我们来看一下路由是什么?
路由,它决定了不同的URL是如何被不同的执行的。这句话什么意思?比如你请求了某个网站的用户列表的URL他就会去执行查询用户列表,并返回用户列表数据。如果你请求了特定用户的接口的URL,他就会查询特定用户,并返回给你特定用户的数据。
路由的本质是什么?
在Koa中,路由的本质就是一个中间件。
那我们为什么要用路由。
想回答这个问题,我们要从两个方面来考虑,
- 第一个是如果没有路由会怎么样。
- 第二个是路由存在的意义是什么。
如果没有路由会怎么样
我们先来看一下如果没有路由会发生什么。
首先,所有的请求都会做相同的事情。比如我请求了 get 新浪微博的用户列表接口,跟我请求的 get 新浪微博的特定的用户接口都会做相同的查询。这显然是不行的,我们期望它能够做的是不同的查询。如果没有路由,所有的请求也都会返回相同的值。
我们来设想一下,如果你请求淘宝,并且再请求一次百度,这两次请求都会给你返回相同的页面。这样是不是就比较乱套了。
下面我们来写一个程序,演示一下什么是路由。
- 首先在本地先创建一个文件夹。
- 在这个文件夹里面,我们启动
CMD,打开命令行工具。 - 在命令行工具里面先执行
npm init -y初始化项目。 package.JSON文件初始化好之后,我们再执行cnpm i koa--save。- Koa 模块安装成功后。我们用
Visual Studio Code打开当前的文件。在当前文件下面,我们创建一个文件叫app.js。在app.js里面开始编写Koa2的代码。
cost koa = require('koa')
然后我们再使用实例化koa的方式得到一个服务器应用对象。
const app = new koa()
当我们通过实例化操作得到一个koa对象,拿到一个 APP 对象,通过 APP.use我们就可以开启一个中间件了。这里面我们使用ctx当作形参写一个箭头函数,我们需要向客户端响应一句话就可以了。比如ctx.body='hello world'。然后再开启一个监听端口,比如我们要监听的是 3000 端口。这个代码写好之后,我们就完成了一个简单的服务器的应用。
cost koa = require('koa')
const app = new koa()
app。use(ctx =>{
ctx.body = 'hellp world'
})
app.listen(300)
然后我们使用 node 命令来开启服务,切换到控制台。在控制台我们使用 node app.js开启客服务,此时没有报错,光标一直在闪,证明这个服务已经开启了。
不管你是访问什么样的一个请求,它都会给你返回同一个内容。我们现在用的是get请求。我们按 F12 打开控制台,在浏览器的开发者工具,我们点network刷新。可以看见。这里面它发了两个请求,一个是要请求一个图标。我们看一下上面请求。此时用的是get请求。
以上三点就说明了路由存在的意义,所以我们在项目开发的过程中,一定要去区分好路由,以及对路由要有一个合理的规划。
写在最后
伙伴们,如果你觉得我写的文章对你有帮助就给zayyo点一个赞👍或者关注➕都是对我最大的支持。当然你也可以加我微信:IsZhangjianhao,邀你进我的前端学习交流群,一起学习前端,成为更优秀的工程师~