nodejs系列:39.koa之koa-parameter中间件-下篇

214 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情

系列介绍

该系列主要是介绍一些nodejs相关的基础知识,没有什么特别难的知识点,都是一些比较基础知识点。大家学习起来,也会比较容易理解和接收。

这些知识点,也是以前自己学习nodejs的时候,学习过的知识点。有些知识点,可能是由于学习的时间比较久了,也有可能是平时工作中用到的机会比较少,也差不多快把它们都忘记掉了。现在把它们都写下来,写成文章,一方面是记录下自己以前学习的nodejs知识点,一方面也是复习巩固自己以前学习的nodejs知识点。不要学着学着,就把以前的知识点都忘光了。

环境安装

实现之前,你首先需要安装nodejs环境。因为我们写的代码需要在node环境上运行,如果你没有,那么文件会运行不了。

以下是nodejs的安装地址,如果你没有安装的话,可以先把它安装上。安装了可以忽略这一步,跳到下面一步。

nodejs安装

koa-parameter

koa-parameter中间件,主要是用来校验请求传送过来的参数是否是自己所需要的。

在接口联调时,对于某个参数,我们希望客户端能够把这个参数传递过来。比如,在查询文章或新闻详情的时候,我们需要用文章的id,去查询这篇文章。这时候,我们就需要客户端把这个文章的id放在请求的请求参数里,传递给后端服务器。后端服务器拿到文章Id,就可以从数据库里查询文章详情,然后返回给到客户端。这时候,就可以使用koa-parameter这个中间件,来校验请求的请求参数里,是否有文章的id。如果有,后端的逻辑可以继续往下执行,从数据库里查询数据,返回给到客户端;如果没有,则返回报错信息给到客户端。

前言

在上一篇文章里,我们介绍了koa-parameter这个中间件的功能和作用。同时,也把服务器端代码逻辑完成了。对客户端发送的请求的请求参数做了校验,校验通过,则继续执行;校验不通过,返回422状态码给到客户端。

我们已经介绍完koa-parameter中间件了,前后端的代码逻辑也完成了,这一节我们将使用koa-parameter中间件,看下效果怎么样。

实现

app.use((ctx) => {
  ctx.verifyParams({
    id: "string",
  });
  ctx.body = "响应内容";
});

这是上一篇文章里,使用koa-parameter中间件的代码。对象属性的值主要是用字符串的形式表示的,那还有没有其它的表示形式呢?

有,也可以传递一个对象形式来表示

app.use((ctx) => {
  ctx.verifyParams({
    id: {
      type: "string",
      required: true,
    },
  });
  ctx.body = "响应内容";
});

对象属性介绍

  • type:类型
  • required:是否必传,默认为true

在cmd里,重新用node运行index.js,刷新浏览器

0001.png

我们看到,请求成功了,说明这样传递也是可以的。

接着,我们修改一下

ctx.verifyParams({
    id: {
      type: "string",
      required: false,
    },
  });

客户端代码也修改一下

 ajax("http://localhost:3000/articleDetail");

不传递id参数,看下请求是否报错

在cmd里,重新用node运行index.js,刷新浏览器

0002.png

我们可以看到,请求成功了,没有报错。这是因为我们设置required为false,代表id这个字段不是必传的。请求参数没有携带id这个字段,请求也是可以正常请求成功。

小结

本篇主要介绍了koa-parameter中间件的verifyParams方法,传递参数的形式。

  • 可以是一个字符串形式
  • 也可以是一个对象形式

最后,放上自己比较喜欢的一句诗句:

千淘万漉虽辛苦,吹尽狂沙始到金 - 唐 刘禹锡《浪淘沙》