大荔县住房和城市建设局网站建设ftp网站的安全性

张小明 2026/1/2 9:06:43
大荔县住房和城市建设局网站,建设ftp网站的安全性,知乎网页版,wordpress cms 中文版在VonaJS框架中#xff0c;AOP编程包括三方面#xff1a;控制器切面、内部切面和外部切面。控制器切面包括五能力#xff1a;Middleware、Guard、Interceptor、Pipe、Filter。其中#xff0c;Middleware又分为#xff1a;局部中间件、全局中间件和系统中间件。其时序图如下…在VonaJS框架中AOP编程包括三方面控制器切面、内部切面和外部切面。控制器切面包括五能力Middleware、Guard、Interceptor、Pipe、Filter。其中Middleware又分为局部中间件、全局中间件和系统中间件。其时序图如下所示aspect-controller由图可知系统中间件在路由匹配之前执行局部中间件和全局中间件在路由匹配之后执行。为了简化起见这里仅介绍全局中间件的用法局部中间件和系统中间件的用法请参见官方文档。创建中间件比如在模块 demo-student 中创建一个 全局中间件: logger1. Cli命令$ vona :create:bean middleware logger --moduledemo-student --boilerplatecli/middlewareGlobal/boilerplate2. 菜单命令右键菜单 - [模块路径]: Vona Aspect/Middleware Global中间件定义export interface IMiddlewareOptionsLogger extends IDecoratorMiddlewareOptionsGlobal {}MiddlewareIMiddlewareOptionsLogger({ global: true })export class MiddlewareLogger extends BeanBase implements IMiddlewareExecute {async execute(_options: IMiddlewareOptionsLogger, next: Next) {const timeBegin Date.now();const res await next();const timeEnd Date.now();console.log(time: , timeEnd - timeBegin);return res;}}IMiddlewareOptionsLogger: 定义中间件参数execute: 输出执行时长使用中间件与局部中间件不同系统会自动加载全局中间件并使其生效中间件参数可以为中间件定义参数通过参数更灵活的配置中间件逻辑比如为 logger 中间件定义prefix参数用于控制输出格式1. 定义参数类型export interface IMiddlewareOptionsLogger extends IDecoratorMiddlewareOptionsGlobal { prefix: string;}2. 提供参数缺省值MiddlewareIMiddlewareOptionsLogger({global: true, prefix: time,})3. 使用参数export interface IMiddlewareOptionsLogger extends IDecoratorMiddlewareOptionsGlobal {prefix: string;}MiddlewareIMiddlewareOptionsLogger({global: true,prefix: time,})class MiddlewareLogger {async execute(options: IMiddlewareOptionsLogger, next: Next) {const timeBegin Date.now();const res await next();const timeEnd Date.now();- console.log(time: , timeEnd - timeBegin); console.log(${options.prefix}: , timeEnd - timeBegin);return res;}}4. 使用时指定参数可以针对某个 API 单独指定全局中间件的参数 import { Aspect } from vona-module-a-aspect;class ControllerStudent {Web.get() Aspect.middlewareGlobal(demo-student:logger, { prefix: elapsed })async findMany() {}}在使用中间件时直接提供参数值即可5. App config配置可以在 App config 中配置中间件参数src/backend/config/config/config.ts// onionsconfig.onions {middleware: {demo-student:logger: {prefix: elapsed,},},};6. 参数优先级使用时指定参数 App config配置 参数缺省值中间件顺序由于全局中间件是默认加载并生效的所以VonaJS 提供了两个参数用于控制中间件的加载顺序1. dependencies比如系统有一个内置全局中间件a-core:gate我们希望加载顺序如下a-core:gate CurrentMiddleware({global: true, dependencies: a-core:gate,prefix: time,})class MiddlewareLogger {}2. dependentsdependents的顺序刚好与dependencies相反我们希望加载顺序如下Current a-core:gateMiddleware({global: true, dependents: a-core:gate,prefix: time,})class MiddlewareLogger {}中间件启用/禁用可以针对某些 API 控制全局中间件的启用/禁用1. Enable针对某个 API 禁用class ControllerStudent {Web.get() Aspect.middlewareGlobal(demo-student:logger, { enable: false })async findMany() {}}针对所有 API 禁用src/backend/config/config/config.ts// onionsconfig.onions {middleware: {demo-student:logger: { enable: false,},},};2. Meta可以让全局中间件在指定的运行环境生效名称 类型 说明flavor string|string[] 参见: 运行环境与Flavormode string|string[] 参见: 运行环境与FlavorinstanceName string|string[] 参见: 多实例/多租户host string|string[] 主机名举例Middleware({global: true, meta: { flavor: normal, mode: dev, instanceName: , host: localhost:7102, },})class MiddlewareLogger {}3. match/ignore可以针对指定的 API 启用/禁用全局中间件名称 类型 说明match string|regexp|(string|regexp)[] 针对哪些API启用ignore string|regexp|(string|regexp)[] 针对哪些API禁用查看当前生效的全局中间件清单可以直接在 Controller action 中输出当前生效的全局中间件清单class ControllerStudent {Web.get()async findMany() { this.bean.onion.middleware.inspect();}}this.bean.onion: 取得全局 Service 实例 onion.middleware: 取得与中间件相关的 Service 实例.inspect: 输出当前生效的全局中间件清单当访问findMany API 时会自动在控制台输出当前生效的全局中间件清单效果如下
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设公司推广方案wordpress 定时发布

2025最新!10个AI论文平台测评:继续教育写论文太难了 2025年AI论文平台测评:为何需要这份榜单? 在继续教育领域,撰写高质量论文已成为许多学员和在职人员的必修课。然而,面对繁重的工作压力与时间限制&#…

张小明 2025/12/29 8:28:38 网站建设

学院网站开发网站定位关于做网站的毕业设计

系统架构设计基础是软考系统架构设计师考试的核心模块之一,在上午选择题中占 10-15 分(单选 8-10 题、多选 2-3 题),下午案例分析题中更是高频考点(常结合架构设计方案、风格选择等考查,分值 5-8 分&#x…

张小明 2026/1/2 7:21:07 网站建设

安徽企业平台网站建设网站申请收录

GetQzonehistory完整使用手册:永久保存QQ空间珍贵记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还在担心QQ空间的说说会消失吗?GetQzonehistory为您提供最…

张小明 2025/12/31 3:34:49 网站建设

如何提高网站的点击率登录手机wordpress

从零开始玩转电路:Multisim14.0实战入门指南你有没有过这样的经历?在《电路分析》课上听着老师讲RLC振荡、运放增益,满黑板的公式写得飞起,可一合上书本,脑子里只剩下一堆抽象符号——电压到底怎么变化的?电…

张小明 2025/12/31 5:28:44 网站建设

客户说做网站价格高提升seo排名的方法

还在为网络信号差导致语音识别失败而烦恼吗?🤔 今天我要向你推荐一个革命性的解决方案——基于OpenAI Whisper和TensorFlow Lite的Android离线语音识别项目。无论你是普通用户还是开发者,这篇文章都将带你深入了解如何在手机上实现高质量的本…

张小明 2025/12/30 18:13:55 网站建设

门户网站策划方案高端网站制作的公司

你是否曾面临这样的困境:精心设计的深度学习模型在小数据集上表现优异,一旦扩展到真实世界规模就性能骤降?🤔 今天,我们将深入解析突破性深度学习模型的扩展实践,帮你彻底解决这一技术瓶颈。通过本文的终极…

张小明 2025/12/30 13:13:28 网站建设