推荐一个基于 Node.js 的表单验证库 [每日前端夜话0x23]

推荐一个基于 Node.js 的表单验证库 [每日前端夜话0x23]

京程一灯 前端先锋

每日前端夜话0x23
每日前端夜话,陪你聊前端。
每天晚上18:00准时推送。
正文共:6350 字
预计阅读时间: 15 分钟
翻译:疯狂的技术宅
原文:https://www.toptal.com/nodejs/smart-node-js-form-validation





API 在执行过程中的一个基本任务是数据验证。 在本文中,我想向你展示如何为你的数据添加防弹验证,同时返回风格良好的格式。

在 Node.js 中进行自定义数据验证既不容易也不快。 为了覆盖所有类型的数据,需要写许多函数。 虽然我已经尝试了一些 Node.js 的表单库 —— Express 和 Koa ——他们从未满足我的项目需求。 这些扩展库要么不兼容复杂的数据结构,要么在异步验证出现问题。

使用 Datalize 在 Node.js 中进行表单验证

这就是为什么我最终决定编写自己的小巧而强大的表单验证库的原因,它被称为 datalize。 它是可扩展的,因此你可以在任何项目中使用它,并根据你的要求进行自定义。 它能够验证请求的正文、查询或参数,还支持async 过滤器和复杂的JSON结构,如 数组 或 嵌套对象。

Github:https://github.com/flowstudio/datalize

配置

Datalize可以通过npm安装:


1npm install --save datalize

要解析请求的正文,你应该使用其他的库。 如果你还没有用过,我建议使用 koa-body for Koa 【https://github.com/dlau/koa-body】或 body-parser for Express 【https://github.com/expressjs/body-parser】。

你可以将本教程用于已配置好的HTTP API服务器,也可以使用以下简单的Koa HTTP服务器代码。



 1const Koa = require('koa');
 2const bodyParser = require('koa-body');
 3
 4const app = new Koa();
 5const router = new (require('koa-router'))();
 6
 7// helper for returning errors in routes
 8app.context.error = function(code, obj) {
 9this.status = code;
10this.body = obj;
11};
12
13// add koa-body middleware to parse JSON and form-data body
14app.use(bodyParser({
15enableTypes: ['json', 'form'],
16multipart: true,
17formidable: {
18maxFileSize: 32 * 1024 * 1024,
19}
20}));
21
22// Routes...
23
24// connect defined routes as middleware to Koa
25app.use(router.routes());
26// our app will listen on port 3000
27app.listen(3000);
28
29console.log('
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章