Egg.js 中入参的校验】的更多相关文章

日常作业中免不了频繁处理 GET/POST 的入参,你当然可以每个 action 中都重复地去做这些事情, 从 query 或 body 取出入参, 对可选的入参进行判空, 处理入参的类型转换, 对入参进行逻辑校验,数字是否超限,类型是否非法等... 但这些通用的逻辑可通过抽取到插件或服务中,避免代码冗余和重复劳动. egg-validation Egg.js 中可通过 egg-validation 插件来减少这部分的工作量.通过该插件,上面大部分工作可转成简单的配置. 安装插件 $ yarn…
1.egg.js官网只推荐了mysqle,要用mongodb得另找资料.通过查找,大家都在用Mongoose连接,于是乎学习. 网站链接:https://www.npmjs.com/package/egg-mongoose 2.第一步:安装 npm i egg-mongoose --save 3.配置 安装完成之后在目录/config/plugin.js中引用 exports.mongoose = { enable: true, package: 'egg-mongoose', }; 在/con…
对数据库的操作很多时候需要同时进行几个操作,比如需要同时改动几张表的数据,或者对同一张表中不同行(row)或列(column)做不同操作,比较典型的例子就是用户转账问题(A账户向B账号汇钱): 1 从A账号中把余额读出来. 2 对A账号做减法操作. 3 把结果写回A账号中. 4 从B账号中把余额读出来. 5 对B账号做加法操作. 6 把结果写回B账号中. 为了数据的一致性,这6件事,要么操作全部成功,要么全部失败回滚.这就是事务的一个特性:原子性.关于事务的四大特性(ACID)这里不做深究. 项…
一.参数管理 在编程系统中,为了能写出良好的代码,会根据是各种设计模式.原则.约束等去规范代码,从而提高代码的可读性.复用性.可修改,实际上个人觉得,如果写出的代码很好,即别人修改也无法破坏原作者的思路和封装,这应该是非常高水准. 但是在日常开发中,碍于很多客观因素,很少有时间去不断思考和优化代码,所以只能从实际情况的角度去思考如何构建系统代码,保证以后自己还能读懂自己的代码,在自己的几年编程中,实际会考虑如下几个方面:代码层级管理,命名和注释统一,合理的设计业务数据库,明确参数风格. 这里就来…
引言 在使用express,koa, 或者是egg.js进行node server开发的过程中,我们的路由基本上都是定义在controller层的,框架对于 node 原生路由都会进行一层封装,一版都会封装到一个router对象,提供http的method对应的方法,然后在回调函数的入参中封装请求对象和响应对象. //koa 中koa-router中的router.js router.get('/home',async (ctx:{req,res},next)=>{ let reqParams…
一.前序 我相信每个人前端搬运工和我想法都是一样的,都有一个做全栈的梦,无奈面对众多的后台语言,却不从下手,今天由我来带你们潜入全栈的门槛,注意是门槛.能不能学的会后面的内容全靠坚持了. 我今天主要做一个留言板项目,这个项目虽小,但是足以让你们感受一下全栈的感觉,自己调用自己写出来的api,随心所欲.学习新知识主要记住一个点看文档.看文档.看文档. ***** 大家可以直接去下载我写的源码进行学习,不懂下方评论区见. github项目地址 相关文档 vue中文文档 egg.js中文文档 ivie…
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > .katex-html { display: block; } .katex-display > .katex > .katex-html > .tag { position: absolute; right: 0px; } .katex { font: 1.21em / 1.2 KaTeX…
近期在写js导出excel文件时运用到replace方法,此处详细的记录下它各个参数所代表的的意义. 定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法 stringObject.replace(regexp/substr,replacement) 返回值 一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的.返回值 这里的 replacement 可以是函数而不是字符串,就是我们所…
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /** * * js函数 * * java: * public [static] return_type method_name([params])…
1)安装mockjs,这一步跳过 2)在项目中建立mock模块,笔者的目录结构如下 mock模块与接口模块一一对应,有一个接口,就有一个mock 3)编写登陆模块mock接口,代码如下: import * as appUtils from '../../utils/appUtils' /** * 系统接口MOCK模块 * @param opt */ export const login = { type: 'get', url: '/login', cb: opt => { const para…