protoc-gen-validate

Posted by 夏泽民

https://github.com/envoyproxy/protoc-gen-validate



xorm

Posted by 夏泽民

https://github.com/go-xorm/xorm



validator

Posted by 夏泽民

https://github.com/go-playground/validator https://github.com/go-playground/locales https://github.com/go-playground/universal-translator



koa 中间件

Posted by 夏泽民

https://www.kancloud.cn/aibabel/koafornodejs/1812621 中间件工作原理 初始化koa实例后,我们会用use方法来加载中间件(middleware),会有一个数组来存储中间件,use调用顺序会决定中间件的执行顺序。 每个中间件都是一个函数(不是函数将报错),接收两个参数,第一个是ctx上下文对象,另一个是next函数(由koa-compose定义) 在建立好http服务器后,会调用koa-compose模块对middleware中间件数组进行处理。具体代码这里就不贴了,原理就是:会从middleware数组中取第一个函数开始执行,中间件函数中调用next方法就会去取下一个中间件函数继续执行。每个中间件函数执行完毕后都会返回一个promise对象。(ps:调用next方法并不是表示当前中间件函数执行完毕了,调用next之后仍可以继续执行其他代码) /**

  • koa 中间件的执行顺序 / // 引入模块 const Koa = require(‘koa’); const router = require(‘koa-router’)(); /引入是实例化路由 推荐*/

// 实例化 let app = new Koa();

// Koa中间件 // 匹配任何路由,如果不写next,这个路由被匹配到了就不会继续向下匹配

// www.域名.com/news app.use(async (ctx, next) => { console.log(‘1、这是一个中间件01’); await next();

console.log(‘5、匹配路由完成以后又会返回来执行中间件’); })

app.use(async (ctx, next) => { console.log(‘2、这是一个中间件02’); await next();

console.log(‘4、匹配路由完成以后又会返回来执行中间件’); })

router.get(‘/’, async (ctx) => { ctx.body = ‘首页’; })

router.get(‘/news’, async (ctx) => { console.log(‘3、匹配到了news这个路由’); ctx.body = ‘这是一个新闻页面’; })

router.get(‘/login’, async (ctx) => { ctx.body = ‘登录页面’; })

app.use(router.routes()); app.use(router.allowedMethods()); /**

  • router.allowedMethods() 作用:这是官方文档的推荐用法,我们可以
  • 看到 router.allowedMethods() 用在了路由匹配 router.routes()之后,
  • 所以在当所有路由中间件最后调用,此时根据 ctx.status 设置 response 响应头 */

app.listen(3000);



grpc middleware go-proto-validators

Posted by 夏泽民

https://github.com/grpc-ecosystem/go-grpc-middleware https://github.com/mwitkow/go-proto-validators



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required