【问题标题】:express.js chain routes in any orderexpress.js 以任意顺序链接路由
【发布时间】:2016-10-05 12:49:03
【问题描述】:

我正在快速制作一个 API,它有很多端点,举几个例子:

product/colour/:COLOUR
product/brand/:BRAND
product/size/:SIZE
product/gender/:GENDER

问题是,我希望用户能够以他们喜欢的任何顺序链接这些端点,例如一个用户可以键入这个端点:

product/size/:SIZE/colour/:COLOUR/gender/:GENDER/

但其他用户可以输入

product/gender/:GENDER/size/:SIZE/colour/:COLOUR

有没有一种方法可以做到这一点,而无需为每种可能的组合创建成百上千条路线?

提前致谢, 蚂蚁

【问题讨论】:

    标签: javascript node.js mongodb express routing


    【解决方案1】:

    可能是查询字符串适合这种情况。

    /product?colour=red&size=xl&gender=male
    

    【讨论】:

    • 我也这么想,只是希望有一种对 SEO 更友好的方式。
    【解决方案2】:

    您定义的所有路由器都将不匹配。

    你可以使用这条路线来匹配你所需要的,

    product/:key1/:value1/:key2/:value2/:key3/:value3
    

    然后您可以使用 'if' 在控制器路径中检查您的键/值对

    【讨论】:

    • 这种方法的唯一问题是用户必须发送确切数量的键/值对吗?例如,他们不能通过这条路线抓住 /brand/:BRAND/size/:SIZE?
    • 是的,如果你想要动态输入,我的建议不满足这个需求
    猜你喜欢
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 2012-01-04
    • 2017-09-02
    • 1970-01-01
    相关资源
    最近更新 更多