Express 项目环境搭建 -- 10. 资源上传

数据校验是为了对请求的数据进行数据类型限制,以保证程序能正常运行。原因是如果请求的数据类型不限制,例如,js 中对非数字类型的字段进行数值运算,就会得到 NaN

Node.js 数据校验有很多,这里我们使用joi

joi

校验规则

我们把所有校验规则按路由源码对应的路径分文件,每个路由文件一个校验文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// src/joi/v1/auth.joi.js
const Joi = require("joi");

const login = Joi.object({
email: Joi.string()
.email({
// minDomainSegments: 2,
tlds: { allow: ["com", "net"] }
}).required(),
password: Joi.string()
.length(16).alphanum().required()
});

module.exports = { login };

使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const express = require("express");
const router = express.Router();

// info 数据校验
const { login } = require("../../joi/v1/auth.joi");

// info 通用方法
const { MyError } = require("../../../utils/index");

/**
* 登录
*/
router.post("", async function(req, res, next) {
try {
// info 检验参数
await login.validateAsync(req.body).catch(err => {
throw new MyError(40001, err);
});
} catch (error) {
next(error);
}
});

module.exports = router;

Express 项目环境搭建 -- 10. 资源上传
https://bubao.github.io/posts/5f60f93e.html
作者
一念
发布于
2022年3月7日
许可协议