Express路由

前言:通过上一章,我们学习了如何建一个express的项目,那么本文给大家带来路由的相关内容,我们都知道前端的路由,都是以url的形式,那么express的路由也是如此。

前面我一笔带过了,关于app.js里面接口部分,接下来我们来详细讲一讲

app.get('/', (req, res) => {
  //req = request(请求)
  //res = response(回应)
  res.send("Hello World")
})

分析:app后面的get就是我们请求的类型,像是post、delete、put这种,/就是路由地址,根路径,所以我们请求http://localhost:8080/的时候,会直接给我们返回send里面的内容。req,其实就是请求,它的全名叫做request,res,就是回应,全名叫做response。我们不难理解这两个参数,就好比,前端请求接口,发送给后台,后台回应给前端值。

那么讲完get的请求类型,我们再说一下post的请求类型:

app.post('/', (req, res) => {
  res.send("I am a post")
})

这里需要注意的是,我们每一次修改,想再去看结果,就需要重新启动服务。
重新进去会看到,同样是根路径,页面返回的结果仍然是get的请求结果,为什么不是post返回的结果呢?
因为我们的浏览器默认返回的就是get请求,所以post请求,我们有两种方式可以测试,一种是,前端调接口请求,一种就是我们通过postman这种方式进行查看。

测试根路径post

我们继续举例:

app.get('/about', (req, res) => {
  res.send("I am a get-about")
})

app.put('/about', (req, res) => {
  res.send("I am a get-put")
})

有了第一次经验,这个返回结果一定是get请求


get-about

那么想看put类型的返回结果,就和验证post方法一样(这里就不继续验证了),我们再稍微变一下,我们隐藏掉/about的get请求,我们再去访问,结果是不能返回的,因为此时路径会去找get的接口,由于我们隐藏了接口,所以不是一个get接口,就不会被访问到。

从上面我们得出,尽管路径一样,但是我们请求的类型不一样,还是很好区分的。

当然express的路由不仅限于一些请求的类型,还比如app.all的方法,可以捕获所有的请求类型,还有一些特殊的路由写法。

第一种:

app.get('/ab?cd', function (req, res) {
  res.send('ab?cd')
})

上面这种写法就是匹配,我们可以是abcd,也可以acd。换句话来说,就是b可以有也可以没有,问号在谁的后面,就相当于可以有,也可以没有。

第二种:

app.get('/ab+cd', function (req, res) {
  res.send('ab+cd')
})

上面的写法,我们可以是abcd、abbcd、abbbcd,诸如此类,换句话来说就是➕前面的数值不管有多少个都可以。

第三种:

app.get('/ab*cd', function (req, res) {
  res.send('ab*cd')
})

上面的写法,我们可以是abcd, abxcd, abRANDOMcd, ab123cd,诸如此类。换句话来说,就是ab和cd中间不管你插入什么都可以,不限。

第四种:

app.get('/ab(cd)?e', function (req, res) {
  res.send('ab(cd)?e')
})

上面的写法,我们可以是/abe and /abcde,换句话来说就是,括号里面的可以看成一个整体,我们可以有cd,也可以没有。

到这里,就不细讲了,因为官网上面关于路由的介绍还是非常详细的,很多其实我们做一些简单的也不会经常用到,像这种的话,就需要大家自己去学习了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容