【问题标题】:Sailsjs overwrite post action in controllerSailsjs 覆盖控制器中的发布操作
【发布时间】:2013-10-07 15:19:00
【问题描述】:

简短的问题,尝试为这么快的风帆寻找 IRC,但迷路了,所以就这样吧。我有一个带有“/ userposts”路由的控制器。我知道sails 提供了一些默认的类似REST 的功能,而无需后端代码,但是如果我想覆盖默认的POST 操作该怎么办?

我不得不编写一个 POST 路由,例如 post /userposts/create,或者我可以覆盖默认操作并直接发布到 /userposts,这将识别我的覆盖并执行它。

我希望我说得通。我基本上想创建一个自定义 POST 路由并能够

socket.post('/userposts', {title: "Foo", content: "Bar"}, function(response){});

我尝试使用create,但它没有在/userposts 的帖子上执行

【问题讨论】:

    标签: sails.js


    【解决方案1】:

    Sails.js 提供开箱即用的蓝图。

    这些蓝图为您提供以下默认启用的 CRUD 路由

    /:controller/find/:id?
    /:controller/create
    /:controller/update/:id
    /:controller/destroy/:id
    

    要修改控制器的默认功能,请查看 config/controllers.js

    中的设置

    您的路由在 config/routes.js 中定义,在您的情况下,您有一个模型 UserPosts 和一个名为 UserPostsController 的相应控制器。

    在您的 UserPosts 控制器中,创建一个函数 createPost 并指定此方法的路由

    'POST /userposts/create': 'UserPostsController.createPost'
    

    这是的简写

    'POST /userposts/create': {
      controller: 'userposts',
      action: 'createPost'
    }
    

    你也可以覆盖 /:controller 路由

    'POST /userposts': 'UserPostsController.createPost'
    

    这些路由会将任何 POST 请求映射到 createPost 函数。

    欲了解更多信息,请务必查看Sails.js documentation

    【讨论】:

    • 有没有办法告诉控制器的动作函数中请求的动词是什么?
    • @MrBell 当然:req.method.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 2011-01-05
    • 2013-02-04
    • 1970-01-01
    相关资源
    最近更新 更多