gpt4 book ai didi

node.js - 您能否为还没有给定端点处理程序的所有动词创建一个 Express Router 处理程序?

转载 作者:行者123 更新时间:2023-12-05 03:14:07 25 4
gpt4 key购买 nike

我有一个仅用于 POST 的 API 端点。如果我使用任何其他 HTTP 动词向该端点发出请求,我会得到一个相当丑陋的非 JSON 响应:Cannot POST/path/to/api。如果我能做出一个语句来处理其余未明确定义的 HTTP 动词,那就太好了(例如:router.other('/path/to/api', function () { .. . });

我尝试使用 router.all('/path/to/api', function () { ... }); 它似乎做了我想要的,但是基于什么在 Express documentation 中给出,这似乎不是解决问题的正确方法。如果我知道我在 POST 函数中调用 res.*router.all() 会是一个可接受的解决方案吗?

感谢您的帮助!

最佳答案

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

如果您想要更多单一的 catchall 解决方案,您可以使用 .use() 代替,它将捕获所有内容,同时只添加一个路由处理程序:

router.post(....)
.use(function(req, res, next) {
// ...
});

关于node.js - 您能否为还没有给定端点处理程序的所有动词创建一个 Express Router 处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26947575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com