【发布时间】:2019-01-25 21:47:38
【问题描述】:
我有一个POST api 端点,可以说/users 来获取用户列表。
它是POST,因为请求的主体非常大,可能不适合GET 请求的url。
假设用户 POST 的主体有一个名为 age 的键,它应该给我特定年龄的用户,即某种过滤
现在在快递我有类似的路线
app.post('/users', function(r,res){
// function body
})
我实际上不能在该函数体中放入任何代码
所以我能够通过为/users 使用另外一个处理程序并将其放在原始处理程序之前来拦截请求,但显然它拦截了所有/users 请求并破坏了早期的功能
我怎样才能只拦截具有特定年龄的请求,然后将其他请求传递给原始处理程序,以便原始功能继续工作?
我想知道如何使用路由处理程序而不是中间件来做到这一点?
我也不能弄乱 url 或请求正文
【问题讨论】:
-
我不明白...你为什么不能把代码放在那个函数里?为什么同一路径/方法有另一条路线?
-
您只想在年龄标准匹配时执行您的处理程序?
-
@AbhaySehgal 是的
-
所以,如果它满足 call next,你可以使用中间件并将你的年龄条件放入该中间件中
-
@jakerella 它是一个复杂的设置,url 就像 a/b/c 并且有 a/* 的处理程序,我必须拦截 a/b/c 类型的 url,其他请求应该去a/* ,所以只是做了一个简单的例子来说明我的问题
标签: javascript node.js express routes middleware