最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

您可以为所有没有给定端点的处理程序的动词创建Express Router处理程序吗?

运维笔记admin11浏览0评论

您可以为所有没有给定端点的处理程序的动词创建Express Router处理程序吗?

您可以为所有没有给定端点的处理程序的动词创建Express Router处理程序吗?

我有一个API端点,该端点仅可用于POST。如果我使用任何其他HTTP动词向该终结点发出请求,则会收到一个非常难看的非JSON响应:Cannot POST /path/to/api。如果我能做出一个处理未明确定义的其余HTTP动词的语句(例如:router.other('/path/to/api', function () { ... });

我尝试使用router.all('/path/to/api', function () { ... });,它似乎可以满足我的要求,但是根据Express documentation中给出的内容,它似乎并不是解决问题的正确方法。如果我知道我在POST函数中调用了router.all()res.*是否可以接受?

感谢您的帮助!

回答如下:

[.all()实际上是每个(受支持的)HTTP方法的adds separate route handlers,这可能效率不高,因为Express可能必须单独检查每个方法。

如果想要更多的单一总体解决方案,则可以改用.use(),它将仅捕获一个路由处理程序而捕获所有内容:

router.post(....)
      .use(function(req, res, next) {
        // ...
      });
发布评论

评论列表(0)

  1. 暂无评论