gpt4 book ai didi

node.js - Express.js 中的所有根级路由 : considerations and reserving possible routes for future use?

转载 作者:太空宇宙 更新时间:2023-11-03 22:02:54 26 4
gpt4 key购买 nike

我正在使用 Express.js (3.0) 开发 Node Web 应用程序;我希望两个用户个人资料都有干净的 URL:

domain.com/用户名

以及每个用户创建和共享的页面:

domain.com/用户名/页面名

我真的更喜欢干净的网址,而不是使用domain.com/profile/usernamedomain.com/pages/username/pagename之类的东西。

我们开发的当前路由配置是这样引导的:

app.get('/', content.home);
app.get('/about', content.about);
app.get('/signup', users.signup);
app.get('/login', users.login);
app.get('/:user', users.profile);
app.get('/:user/:userpage', userpage.render);

最后两条是所有路线。现在效果很好,但我不确定这是否是一个糟糕的设计或实现。

更重要的是,我想保留 100 个左右的页面名称以供将来使用,例如“联系人”、“职业”、“取消”、“定价”等。我不打算使用这些名称来启动页面,但我想知道是否可以创建一个路由文件来捕获这些请求并将它们发送到占位符页面,而不是将它们评估为用户个人资料或用户生成的页面。

我显然可以阻止创建这些用户名,但也必须有一种创造性的路由方法,并了解使用包罗万象的根级路由时的任何其他注意事项——这可能会导致大量的数据库由于用户和页面查找不存在的对象或页面而造成的压力。

最佳答案

您可以执行类似于以下代码片段的操作。它是 CoffeeScript ,但一般理论是相同的。

placeholder = (req, res, next) ->
res.render 'placeholder'

reserved = ['/contact','/careers','/cancels','/pricing']

each page in reserved
app.get page, placeholder

app.get '/:user', ....

如果您决定添加额外的占位符页面,只需将其添加到该数组中并重新启动应用程序即可。

关于node.js - Express.js 中的所有根级路由 : considerations and reserving possible routes for future use?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13204513/

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