Joi
joi可以用于js对象的规则描述语言和验证器
使用的方法:
- 引入joi模块
- 定义对象的验证规则
- 使用joi.validate(par1,par2)方法进行验证。其中第一个参数是要进行验证的对象,第二个参数是对象的验证规则
/***********示例代码************/
const Joi = require('joi');
const schema = {
username: Joi.string().alphanum().min(3).max(30).required().error(new Error(‘错误信息’)),
password: Joi.string().regex(/^[a-zA-Z0-9]{3,30}$/),
access_token: [Joi.string(), Joi.number()],
birthyear: Joi.number().integer().min(1900).max(2013),
email: Joi.string().email()
};
Joi.validate({ username: 'abc', birthyear: 1994 }, schema);
formidable
formidable用于解析表单,支持get参数、post参数、文件上传
(用于文件上传)使用方法:
- 引入formidable模块
- 创建表单解析对象
- 对表单解析对象进行相关配置
- 对表单进行解析
/***********示例代码************/
// 引入formidable模块
const formidable = require('formidable');
// 创建表单解析对象
const form = new formidable.IncomingForm();
// 设置文件上传路径
form.uploadDir = "/my/dir";
// 是否保留表单上传文件的扩展名
form.keepExtensions = false;
// 对表单进行解析
form.parse(req, (err, fields, files) => {
// fields 存储普通请求参数
// files 存储上传的文件信息
});
mongoose-sex-page
mongoose-sex-page 用于数据的分页
使用方法:
- 引入mongoose-sex-page 模块
- 传递一个集合构造函数(数据)
- 实现分页
/******************示例代码*****************/
const pagination = require('mongoose-sex-page');
pagination(集合构造函数).page(1) .size(20) .display(8) .exec();
// page()代表当前页 size()代表每页显示数量 display()为要显示的页码数量 exec() 向数据库发出查询请求
下图为查询返回的结果(与以上代码无关):