当前位置: 首页 > 知识库问答 >
问题:

Vertx web路由-多个主体处理程序

南宫阳焱
2023-03-14
router.route().handler(BodyHandler.create().setBodyLimit(1024*1024));
router.post("/upload/path").handler(BodyHandler.create("/upload/dir").setBodyLimit(maxUploadSize));
router.post("/upload/path").handler(BodyHandler.create("/upload/dir").setBodyLimit(maxUploadSize));
router.route().handler(BodyHandler.create().setBodyLimit(1024*1024));

但我想知道是否有一种方法可以先定义公共处理程序,然后一些路由可以定义另一个处理程序。谢谢

共有1个答案

宰父嘉胜
2023-03-14

不能“重写”处理程序。BodyHandler任务是在不兼容的请求中设置正确的处理程序并解析请求正文。这些事件只触发一次,所以如果添加多个处理程序,只有第一个匹配的处理程序才能处理这些事件。

您可能不需要多个处理程序,就可以在路由上下文中解析请求正文并填充表单数据和文件上传属性。所以,如果你想让它有不同的行为,上传到不同的位置,你可以只执行一个文件移动操作。

如果您需要完全不同的配置,那么您需要指定不相交的路由,例如:

router.post("/upload/path")
  .handler(BodyHandler.create("/upload/dir").setBodyLimit(maxUploadSize));
router.route("/something/else")
  .handler(BodyHandler.create().setBodyLimit(1024*1024));
 类似资料:
  • 问题内容: 有没有办法在单个函数调用上做到这一点? 就像是: 我知道这是一个语法混乱,但是只是为了给我一个我想实现的目标一个思路,一系列路由就很棒了! 有人知道怎么做吗? 问题答案: 我在寻找相同功能时遇到了这个问题。 @Jonathan Ong在上面的评论中提到,不建议将数组用于路径,但已在Express 4中对其进行了明确描述,并且它在Express 3.x中有效。这是尝试的示例: 从对象内部

  • 问题内容: 在我的NodeJS 应用程序中,我有一些常用的路由。然后,在文件中,我想定义更多路线。 如何识别文件中定义的其他路由处理程序? 一个简单的 要求 似乎不起作用。 问题答案: 例如,如果要将 路线放在单独的文件中 ,则 可以通过以下方式创建文件: 然后您可以 通过这种方式传递 对象 来要求它: 看看这些例子 https://github.com/visionmedia/express/t

  • 路由执行体 Tango 支持 5 种形式的函数或结构体方法作为执行体: func() func(http.ResponseWriter, *http.Request) func(*tango.Context) func(http.Response.Writer) func(*http.Request) struct.Get() func() t := tango.Classic() t.Get("

  • 我是JPA的新手,有一个关于如何处理实体的问题。在我的例子中,我有3个实体:用户、组和事件。 一个事件总是属于一个组。这意味着有一个OneToMulti-Relation。一个用户可以订阅多个组,这意味着有一个ManyToMulti-Relation。现在我遇到麻烦的部分。一个用户也可以订阅多个事件,这意味着也有一个ManyToMulti-Relation。 现在我的问题是。我如何在我的组实体中列

  • 问题内容: 我有一个带有服务的应用程序,该服务包装了我的API调用: 并且我正在使用UI-Router在状态之间进行转换: 我不再使用普通的AngularJS路由器,并且难以理解如何实现404。我可以看到抛出状态被拒绝,但是如何在状态路由器中捕获它呢? 问题答案: 仅当没有其他 路由 匹配时才调用该规则。您真正想要的是拦截事件,即在状态转换中出现问题(例如,解析失败)时触发的事件。您可以在状态更改

  • 我有一个具有多个节点的Hazelcast集群,每个节点都由一个“守护进程”服务器进程的相同实例组成。这些守护进程是带有嵌入式Hazelcast缓存以及构成我的平台核心的逻辑的Java应用程序。我需要将平台上的某些事件分发给集群中的侦听器,这些侦听器可以驻留在任何(或所有)连接的节点中。从我阅读的文档来看,如果我在守护进程启动时将EntryEventListener附加到映射,那么每当该映射中发生事