【发布时间】:2019-08-07 21:01:38
【问题描述】:
试图建立一个 webhook 系统,用户可以通过提供一个方法和一个端点来监听我的 express 服务器的任何方法(例如PUT /movies/*)。这会将编辑后的电影发送到用户的回调 url。
我在这里面临的挑战是:
- 不强制用户编写完整的正则表达式(例如 bash 通配符是理想的,或者节点
path-to-regexp库的工作方式) - 在调用端点时检索与端点匹配的所有钩子
我真的不确定如何处理第一点,但是我能够使用此处提供的解决方案来检索我的 webhook MongoDB reverse regex
private static async getWebhooks(endpoint: string, method: string): Promise<any[]> {
return await MongoDb.Instance.Models.Webhook.find({
$where: `"${endpoint}".match(this.endpoint)`,
method: method,
});
}
这并不完全按预期工作。假设 GET /movies/* 匹配 GET /movies 和 GET /movies/:movieId 端点,但它应该只匹配后者。
【问题讨论】:
标签: node.js regex mongodb typescript