携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情
系列介绍
该系列主要是介绍一些nodejs相关的基础知识,没有什么特别难的知识点,都是一些比较基础知识点。大家学习起来,也会比较容易理解和接收。
这些知识点,也是以前自己学习nodejs的时候,学习过的知识点。有些知识点,可能是由于学习的时间比较久了,也有可能是平时工作中用到的机会比较少,也差不多快把它们都忘记掉了。现在把它们都写下来,写成文章,一方面是记录下自己以前学习的nodejs知识点,一方面也是复习巩固自己以前学习的nodejs知识点。不要学着学着,就把以前的知识点都忘光了。
环境安装
实现之前,你首先需要安装nodejs环境。因为我们写的代码需要在node环境上运行,如果你没有,那么文件会运行不了。
以下是nodejs的安装地址,如果你没有安装的话,可以先把它安装上。安装了可以忽略这一步,跳到下面一步。
前言
在上一篇文章里nodejs系列:37.koa之koa-parameter中间件-上篇,我们介绍了koa-parameter这个中间件的功能和作用。同时,也把客户端的代码写好了。
接下来,我们继续完成服务器端代码逻辑。
koa-parameter
koa-parameter中间件,主要是用来校验请求传送过来的参数是否是自己所需要的。
在接口联调时,对于某个参数,我们希望客户端能够把这个参数传递过来。比如,在查询文章或新闻详情的时候,我们需要用文章的id,去查询这篇文章。这时候,我们就需要客户端把这个文章的id放在请求的请求参数里,传递给后端服务器。后端服务器拿到文章Id,就可以从数据库里查询文章详情,然后返回给到客户端。这时候,就可以使用koa-parameter这个中间件,来校验请求的请求参数里,是否有文章的id。如果有,后端的逻辑可以继续往下执行,从数据库里查询数据,返回给到客户端;如果没有,则返回报错信息给到客户端。
实现
创建文件
创建一个index.js文件,服务器端代码逻辑在这个文件里编辑。
安装koa-parameter
npm install koa-parameter
引入koa,创建服务器
const koa = require("koa");
const app = new koa();
引入koa-cors中间件,解决跨域问题
const cors = require("koa-cors");
app.use(cors());
引入koa-parameter中间件
const parameter = require("koa-parameter");
注册koa-parameter中间件
parameter(app);
使用koa-parameter中间件
app.use((ctx) => {
ctx.verifyParams({
id: "string",
});
ctx.body = "响应内容";
});
使用了koa-parameter中间件,会往上下文对象添加一个verifyParams方法。我们使用这个方法,来对请求的请求参数做校验。
verifyParams方法,参数传递一个对象
- 对象属性的键是你要校验的参数名称
- 对象属性的值是要校验参数的数据类型,比如number,string,bollean等
启动服务器
app.listen(3000, () => {
console.log("服务器启动");
});
我们在cmd里用node运行index.js文件,启动服务器。
然后,把客户端html文件,运行到浏览器。客户端文件一运行,就会向服务端发送请求。
在浏览器的network里,我们可以看到,请求发送了,但是服务器返回了一个422状态码,请求失败了。
这是因为我们使用了koa-parameter中间件,对请求的请求参数做了校验。请求参数需要有一个id字段,它的值为string类型。
而我们看客户端发送的请求
没有携带id这个字段,koa-parameter中间件没有检验通过,服务器端逻辑没有继续往下执行,同时返回422状态码给到客户端。
知道问题原因所在,那我们就知道怎么解决了。
在客户端发送请求里,加上id这个字段
ajax("http://localhost:3000/articleDetail?id=1");
修改好,刷新浏览器。这时,我们发现,请求成功了,服务器返回了内容。
小结
本篇主要是完成了服务器端的代码逻辑,使用koa-parameter中间件,来校验请求的请求参数对象。
如果校验通过,服务器端代码逻辑正常执行,把结果返回给到客户端。
如果校验不通过,服务器端代码逻辑没有继续执行,同时,返回422状态码给到客户端。
最后,放上自己比较喜欢的一句诗句:
千淘万漉虽辛苦,吹尽狂沙始到金 - 唐 刘禹锡《浪淘沙》