【问题标题】:Sails.js non-static routing urlsSails.js 非静态路由 url
【发布时间】:2014-08-18 05:26:59
【问题描述】:

所以我正在处理这个Sails.js flash message for user registration,但后来我遇到了一个新问题。所以基本上我在用户控制器中使用以下内容将user/register.js 文件的非静态内容呈现给客户端。

'register': function(req, res){
    res.view();
},

这意味着访问注册页面的地址将是http://localhost/user/register。是否可以更改此 url 以使用 http://localhost/register 而无需网页重定向(可能来自上述代码本身)?我相信这可以使用自定义重定向Custom Routes 来处理。但是有时使用重定向可能很难看?

【问题讨论】:

  • 路由不是重定向。
  • @BenFortune 但是我们如何在没有重定向的情况下建立localhost/register 而不是localhost/user/register?我根本不希望 localhost/user/register 存在。但到目前为止,我仍然坚持使用它,因为我需要渲染动态内容。

标签: node.js express sails.js


【解决方案1】:

您链接到正确的文档,但没有查看正确的部分。您想使用 controller/action custom route syntax/register 路由到 UserController.register 操作:

"/register": "UserController.register"

"/register": {controller: 'user', action: 'register'}

在你的 config/routes.js 中会做你想做的事。

要禁用默认的 /user/register 路由,您可以 1) 在 config/blueprints.js 中将 actions 设置为 false(这将变为关闭所有默认控制器/动作路由),或在 config/routes.js 中明确禁用路由:

"/user/register": {response: 'notFound'}

【讨论】:

  • 但这不会创建两个可以访问的网址吗? localhost/registerlocalhost/user/register?我想避免这种重复并让第二个链接返回 404 错误页面?
  • 抱歉,不清楚您是否希望这条路线并且这条路线有效。更新了我的答案。
  • "/user/register": {response: 'notFound'} 无法解决这个问题,我猜是因为 'register': function(req, res){ res.view(); }, 稍后在用户控制器中被调用?然而,在config/blueprints.js 中将actions 转换为false 就成功了。谢谢:)
  • 嗯,{response: 'notFound'} 不起作用的唯一原因是,如果您没有使用 Sails v0.10.x。自定义路线优先于其他一切。
  • @pewpewlasers 请提供完整的答案来回答您自己的问题。我创建了一个 wiki 票,所以我可以在下面关注你。
【解决方案2】:

OP对评论中案例的解决方案。

[我无法通过 sgress454 提案解决"/user/register": {response: 'notFound'}]。然而,在config/blueprints.js 中将actions 转换为false 就成功了。

Sails 版本

【讨论】:

    猜你喜欢
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多